javascript - 压缩数据后如何用Javascript替换图像formdata?

标签 javascript form-data image-compression data-uri

有各种图像压缩库,可以简单地读取附加到表单的 <input> 的文件。 ,但我缺乏将新的压缩图像“返回”到那个的技能 <input> ,因此它会附加到表单/申请并可以进行处理。

无论我尝试什么库,通常在控制台中都可以看到旧/新的尺寸值,然后按表单上的“提交”将图像发送到服务器,总是发送原始图像,而不是新的压缩图像一个。

如何替换用户为 <input type="file"> 选择的图像使用 Javascript 创建的新 DataURL?我想我只需要一两行代码来替换值/数据,但是哪一行?

提供代码有点困难,因为我还没有设置特定的压缩库。假设我们有一个带有 <input> 的表单。 、一个 OnChange 事件处理程序和一个读取数据并返回新 DataUrl 的函数。

最佳答案

据我所知,由于安全原因,浏览器不允许您修改FileList

无论如何,您可以通过将隐藏字段附加到表单并将数据 URI 设置为隐藏字段的 Base64 值来解决您的任务。在表单提交时清除原始文件字段(如果不需要),而在服务器端您必须解码隐藏字段的 Base64 值。

如果 ajax 请求适合您,另一种选择是使用 FormDataXMLHttpRequest (有关一些好的示例,请查看 Using FormData Objects )。

关于javascript - 压缩数据后如何用Javascript替换图像formdata?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57818185/

相关文章:

php - 我可以使用 AJAX 将表单数据/变量传递到 jQuery 脚本中的 php 吗?

node.js - VueJS表单数据如何发送带有其他数据的图像文件

javascript - 表单数据内容类型中未定义的 Node.js req.body

language-agnostic - 高尔夫代码:1x1黑色像素

javascript - jinja2.exceptions.TemplateSyntaxError : expected token ',' , 得到 'static'

javascript - 无法使用 mongoose、Node.js 将数据插入 mongoDB 中的文档字段

image - JPG 与压缩 JPG 与 WEBP - 为什么 WEBP 不是最小的?

Java:有损图像压缩算法

javascript - 根据父元素的大小或窗口的大小更改 translateX 的值和元素的大小

javascript - 来自 JQuery 填充字段的值未绑定(bind)到 MVC 模型