【发布时间】:2017-11-17 12:42:53
【问题描述】:
我一直在努力构建在 Dropzone.js 中排队等待上传的文件名列表。我已经在论坛上搜索了数周来寻找答案。 https://github.com/enyo/dropzone/issues/1652
我从这里开始: https://github.com/enyo/dropzone/wiki/Upload-all-files-with-a-button。
这部分代码是我工作的地方:
this.on("addedfile", function() {
console.log(this.getAcceptedFiles(file));
});
此函数返回有关单击时要上传的排队文件的信息数组。数组如下所示:
[File(75099)]
0: File(75099)
accepted: true
lastModified: 1508061061300
lastModifiedDate: Sun Oct 15 2017 05:51:01 GMT-0400 (Eastern Daylight Time) {}
name: "ITI-TV-REPAIR-FORM.pdf"
previewElement: div.dz-preview.dz-file-preview
previewTemplate: div.dz-preview.dz-file-preview
size: 75099
status: "queued"
type: "application/pdf"
upload: {progress: 0, total: 75099, bytesSent: 0}
webkitRelativePath: ""
_removeLink: a.dz-remove
__proto__: File
length: 1
__proto__: Array(0)
我知道如果我使用 this.getAcceptedFiles().length。它将返回 1。因为长度在数组的“根”中,所以应该如此。但试图访问这个名字是我难住的地方。困难的部分是数组头部的 [File(75099)] 总是会改变,但键名总是在同一个地方。
我在打字时大声思考。我刚刚想到的是如果我可以对数组进行键值搜索,因为我知道我要查找的键是 name:。
我尝试使用
访问名称值this.getAcceptedFiles().name
当然,那没有用。所以我最后的问题是访问该数组中的键值以获取文件名的最佳方法是什么?
更新:弄清楚!!!
this.on("addedfile", function(file) {
//returns file names that are in the queue
console.log(file.name);
});
【问题讨论】:
-
你试过
this.getAcceptedFiles()[0].name吗? -
是的,它返回名称未定义
-
也检查一下
this.getAcceptedFiles()[0][0].name -
试过了:expenses.php?id=144:57 Uncaught TypeError: Cannot read property '0' of undefined at Dropzone.
(expenses.php?id=144:57) at Dropzone.Emitter.emit (VM17716 dropzone.js:58) 在 Dropzone.addFile (VM17716 dropzone.js:986) 在 Dropzone._addFilesFromItems (VM17716 dropzone.js:912) 在 Dropzone.drop (VM17716 dropzone.js:876) 在HTMLFormElement.listeners.events.drop (VM17716 dropzone.js:655) -
我更新了我的答案,如果我错过了什么,请告诉我
标签: javascript php jquery arrays