【发布时间】:2011-06-18 23:23:42
【问题描述】:
我在 JS (AJAX POST) 中设置了拖放文件上传脚本,但在 Safari 中过滤文件夹时遇到了困难 - 版本 5.0.3 (6533.19.4)。
每当我将多个文件/文件夹放入浏览器时,Chrome 都会过滤掉这些文件夹,而 Firefox 会为 .size 返回 0,因此防止这些情况是微不足道的。
然而,Safari 会返回一个 68 字节的文件(文件夹的大小)。
有什么方法可以测试这个File(FileList 中的项目)是否是一个文件夹?
在File/Blob API 中似乎找不到任何测试这种情况的东西(尝试.type 没有意义,因为它不会返回任何未知文件和文件夹...)
更多信息:
基本上发生的情况是 AJAX 请求的正文为空。我正在使用FormData 上传:
var file = ...; // the dropped file
var formData = new FormData();
formData.append("file", file);
var xhr = new XMLHttpRequest();
...
xhr.send(formData);
【问题讨论】:
-
我为此发布了一个错误报告:bugs.webkit.org/show_bug.cgi?id=63898
-
最新版本的 Chrome 似乎与 Safari 存在相同的问题。你有没有找到过滤掉这些的标准方法?
-
看起来有一个基于此文档 developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry/… 的
isDirectory属性,但 Safari 可能不支持该属性。
标签: html safari drag-and-drop filter directory