HTML文件标记:.files[0]和.value之间的差异

HTML File tag: difference between .files[0] and .value

本文关键字:value 之间 文件 files HTML      更新时间:2023-09-26

我正在编写一个AJAX文件上传程序,遇到了这个问题:我需要将文件附加到FormData中,但有些浏览器支持file标记的files属性(在html5中定义),而其他浏览器只支持value;所以我写了这个:

 d.append('mFile',pfile);

其中pfile是files[0]或value,具体取决于浏览器支持的内容。

唯一的问题是:在任何浏览器上,值都不起作用。

我该怎么修?

注意:我不能使用JQuery。

.files是FileList,.files[0]是File(如果列表为空,则为未定义)
.value仅仅是一个字符串(通常是一个模糊的文件名)
要用FormData上传一个文件,你必须向它传递一个文件(或Blob)。传递.value只会发布文件名
如果浏览器支持FormData,那么它很可能支持FileList,因此没有理由将.value传递给FormData。