将blob添加到dropzone.js队列而不是file
Add blob to dropzone.js queue instead of file
我使用dropzone.js上传文件。然而,我的文件在上传之前正在进行预处理。最后,我有一个blob
,我想上传。不幸的是,只有addFile()
方法可用,但没有addBlob()
方法。我知道我可以像这样使用File
构造函数:
new File([blob], 'filename', options)
但是构造函数在IE/Edge中不可用。
是否有办法将blob附加到dropzone.js队列?
addFile()
可以直接用于blobs:
function dataURItoBlob(dataURI) {
// http://stackoverflow.com/a/12300351/4578017
var byteString = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
var blob = new Blob([ab], {type: mimeString});
return blob;
}
$(() => {
const options = {
autoProcessQueue: false,
url: "/file/post"
};
const myDropzone = new Dropzone( $('#dz').get(0), options);
function addBlob(blob) {
blob.name = 'myfilename.png'
myDropzone.addFile(blob);
}
$('#preprocess').on('change', function() {
const reader = new FileReader();
reader.onload = () => {
$('#data-uri').text(reader.result.slice(0, 64) + '...');
addBlob(dataURItoBlob(reader.result));
};
reader.readAsDataURL(this.files[0]);
});
})
#dz {
height: 240px;
width: 240px;
background: #ccc;
}
<link href="https://github.com/enyo/dropzone/blob/master/dist/dropzone.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://raw.github.com/enyo/dropzone/master/dist/dropzone.js"></script>
<input id="preprocess" type="file">
<pre id="data-uri"></pre>
<div id="dz"> dropzone.js </div>
File
对象只是Blob
的一种特殊类型,并且addFile()
不要求它是File
相关文章:
- 正在将base64 jpeg从input-type=file上传到服务器
- 如何处理node.js节点mongodb中的连接和查询队列
- 事件循环、回调队列和 Javascript 的单线程是如何连接的
- 有人能告诉我如何在cent-os中打开扩展名为.dat的FIle吗
- File Upload事件上下文和javascript
- 如何使用队列呈现多个HighCharts以防止加载时间过长
- Angular 2中Observable中获取数据后的队列/回调函数
- 阻止AJAX队列阻止浏览器
- 将JS函数添加到并行队列中
- 使用jQuery File Upload实现所需的用户登录
- FileEntry.file方法使dataTransferItemList为空
- 如何在uploadify/uploadifive中使用OnQueueComplete事件在队列完成时发送电子邮件
- 使用RxJS模拟命令队列和撤消堆栈
- 使用jquery队列按顺序淡入任意数量的文本行
- '的文件格式和扩展名;file.xls'don't与fileSaver.js匹配
- 有没有什么方法可以通过输入字段(type=file)来找出选择了多少个文件
- FF和Chrome中的 ftp:// 网页不会加载 file:// 脚本
- jquery队列自动搜索现有用户
- 将从浏览器创建的文件保存到磁盘 - 不能在 Firefox 上使用新的 File()
- 将blob添加到dropzone.js队列而不是file