javascript - 上传时在客户端 (javascript) 压缩 PSD 和 AI 文件
问题描述
我正在发布帖子(带有 PSD 文件),这些文件的大小非常大,所以我在上传文件后(以及在发布帖子之前)尝试压缩它们,我使用了 jszip 包,它对我有用但不幸的是我如果不使用 Safari 和 IE 不支持的(数据传输),则无法修改 FileList() 对象以将新的压缩文件分配给文件字段。
let zip = new JSZIP()
zip.file(filename, file_input_field.files[0])
zip.generateAsync({type:"blob"}).then((blobdata)=>{
let zipblob=new DataTransfer();
let zip_file=new File([zipblob], “filename.zip”);
list.items.add(zip_file);
let myFileList = list.files;
file_input_field.files = myFileList
感谢您的帮助!
解决方案
该files
属性是一个FileList 对象,您不能修改它。
在您的情况下,我将使用 FormData 接口并异步发送表单。您在此页面上有一个清晰的示例:使用 FormData 对象 - MDN。
推荐阅读
- python - 使用 Python 使用一个时间序列来预测另一个(不均匀间隔)
- c - 为什么函数局部变量和参数被推入堆栈?
- jquery - Bootstrap 4 悬停时更改选项卡
- c++ - 链接器找不到在虚拟类 C++ 中访问的静态字段的符号
- couchdb - 如何获取附件的子集
- powerbi - Power BI 根据切片器选择计算 MAX
- javascript - (JavaScript) 如何在three.js 中操作球体的顶点?
- r - 删除R中数据框中列表中<4位数字的数字
- swift - 如何通过在 Swift 中滚动滑块来滚动 UICollectionView?
- c# - 如何使用组合框更改 datagridview 表?