我很清楚你不能通过拖放上传整个文件夹。问题是,我如何判断是否有人尝试这样做?如果你将一个文件夹拖到浏览器中,它的行为就像你拖一个带有 webkit 不知道的扩展名的文件一样,比如“.sh”。你怎么能分辨出来?
我已经在 Mac OS X 和 Windows 上的 Chrome、Safari 和 Firefox 中对此进行了测试。根据浏览器和操作系统,我得到的结果略有不同。有时它会成功上传零字节文件。有时它会上传文件夹的图片。有时它无法上传任何内容。
event.dataTransfer.types 和 event.dataTransfer.items 都撒谎并分别说类型是“文件”或“文件”。
Firefox 给出了以下类型列表:
{"0":"application/x-moz-file","1":"text/x-moz-url","2":"text/plain","3":"Files"}