有各种图像压缩库,可以简单地读取附加到表单的 <input>
的文件。 ,但我缺乏将新的压缩图像“返回”到那个的技能 <input>
,因此它会附加到表单/申请并可以进行处理。
无论我尝试什么库,通常在控制台中都可以看到旧/新的尺寸值,然后按表单上的“提交”将图像发送到服务器,总是发送原始图像,而不是新的压缩图像一个。
如何替换用户为 <input type="file">
选择的图像使用 Javascript 创建的新 DataURL?我想我只需要一两行代码来替换值/数据,但是哪一行?
提供代码有点困难,因为我还没有设置特定的压缩库。假设我们有一个带有 <input>
的表单。 、一个 OnChange 事件处理程序和一个读取数据并返回新 DataUrl 的函数。
最佳答案
据我所知,由于安全原因,浏览器不允许您修改FileList
。
无论如何,您可以通过将隐藏字段附加到表单并将数据 URI 设置为隐藏字段的 Base64 值来解决您的任务。在表单提交时清除原始文件字段(如果不需要),而在服务器端您必须解码隐藏字段的 Base64 值。
如果 ajax 请求适合您,另一种选择是使用 FormData
和 XMLHttpRequest
(有关一些好的示例,请查看 Using FormData Objects )。
关于javascript - 压缩数据后如何用Javascript替换图像formdata?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57818185/