假设:一个可以访问 file:// 的本地 HTML/Javascript 网页
在可拖动的 HTML 元素上开始拖动时,在事件处理函数dragStart(e)
中,如何添加 File 对象以便将其识别为文件并最终出现在dataTransfer.files
列表中?
前任:
function dragStart(e){
var file = getSomeFileObjFromSomewhere();
e.originalEvent.dataTransfer.effectAllowed = "all";
e.originalEvent.dataTransfer.setData("file", file);
console.log("\nFiles:");
i = 0;
var files = e.originalEvent.dataTransfer.files,
len = files.length;
for (; i < len; i++) {
console.log("\nIndex: " + i + "\nFilename: " + files[i].name);
console.log("Type: " + files[i].type);
console.log("Size: " + files[i].size + " bytes");
console.dir(files[i]);
}
}
具体来说,它需要在 Chrome/Chromium 上运行。而且,我们可以假设该文件存在于本地驱动器上。基本上,当文件从 Windows 资源管理器拖动到可放置元素上的 HTML 页面时,我希望相同的数据可用。
我知道这存在于 Chrome 中:
e.originalEvent.dataTransfer.setData("DownloadURL", fileType + ":" + name + ":" + filePath);
下载文件。但这不是我想要的,因为我想假设这是一个现有文件并且必须访问原始文件。