输入类型文件转换为拖放jquery对象



我最近拼凑了一些代码,允许通过jquery将拖放文件上传到我的服务器。现在我试图添加一个表单与文件选择输入使用相同的代码。问题是,我似乎无法将文件选择输入读取到兼容对象中。

我的拖放代码基本上有,on drop:

var files = e.originalEvent.dataTransfer.files;

然后将"files"变量输入到另一个函数中以处理jquery/ajax上传。

当试图让文件输入选择以类似的方式工作时,我尝试了以下代码,但没有成功:

var files = new FormData();
files.append("file", $("#fileselect")[0].files[0]);

fileselect是我的

的id
<input type="file" id="fileselect"></input>

但是当我将这个"files"变量输入到现有函数中时,我无法读取如下属性:

console.log("file length: " + files.length);

有什么建议可以告诉我正确的方向吗?非常感谢。

我找不到一种完全实现相同格式的方法,但由于后来的函数只是将数据分配给FormData对象,因此我复制了该函数并对其进行了一些调整,以便在继续执行其余代码之前将从表单输入中提取的数据转换为FormData对象,然后我可以在将其转换为FormData对象并像正常一样进行之前读取语法略有不同的各种属性:

var file = $("#fileselect")[0].files[0]; //read from file input
var filename = file.name;
var filesize = file.size; //in bytes
var fd = new FormData();
fd.append('file', file);

最新更新