如果用户尝试将文件夹拖放到我的文件上传器控件以进行上传,那么我需要向用户显示一条错误消息,说明只能上传文件。问题是我无法将文件与文件夹区分开来。
我认为的一种方法是检查jQuery的文件类型属性。假设文件名是“test.txt”,那么文件类型将返回“text / plain”。对于普通文件夹名称,例如“TestFolder”,文件类型将为空,其文件大小将返回0.但是,如果文件夹名称包含类似“TestFolder.txt”的扩展名,则文件类型将返回“text / plain”。
所以我可以检查文件类型和文件大小但是对于像“TestFolder.txt”这样的文件夹名称它无法正常工作。任何人都可以建议我使用jQuery或其他方法解决这个问题的好方法吗?
答案 0 :(得分:3)
确定文件夹是否已被删除的能力取决于用户代理对Filesystem API的支持。如果用户代理支持Filesystem API(目前仅支持Chrome 21+),则可以使用Entry
接口,该接口有两个子接口:DirectoryEntry
和FileEntry
。界面本身具有isDirectory
和isFile
功能。如果不支持此接口,则在检查DataTransfer
对象时无法确定删除的项是否为文件夹。
答案 1 :(得分:0)
由于您不打算允许文件夹拖放,首先检查它是否是文件夹或文件,仅次于它不是文件夹,然后检查文件扩展名。但IE< 11不支持文件API来处理。希望它有所帮助。
答案 2 :(得分:-1)
据我所知,浏览器(以及javascript本身)出于安全考虑,无法访问任何文件访问方法,因此您无法检查文件的实际内容。
我过去一直在处理这个问题,而且我发现最好的选择是处理文件服务器端,并在上传完成后将错误返回到页面。
我很高兴看到自己有更好的选择。