2012-02-21 26 views
8

如果用戶試圖將文件夾拖放到我的文件上傳控件上傳,那麼我需要向用戶顯示一條錯誤消息,說只有文件可以上傳。問題是我無法區分文件夾中的文件。如何區分上傳時使用拖放jquery時從文件夾中的文件?

我認爲的一種方式是檢查jQuery的文件類型屬性。假設文件的名稱是「test.txt」,那麼文件類型將返回「text/plain」。對於常規文件夾名稱,例如「TestFolder」,文件類型將爲空,其文件大小將返回0.但是,如果文件夾名稱包含「TestFolder.txt」等擴展名,則文件類型將返回「text/plain」。

所以我可以檢查文件類型和文件大小,但它不會像「TestFolder.txt」文件夾名稱正確工作。任何人都可以建議我使用jQuery或其他方法解決這個問題嗎?

+1

你能指定你使用的是什麼「拖放」插件嗎? (如果有的話) – 2012-05-15 15:41:52

+0

您可能還需要注意IE還沒有FileAPI,所以它可能不會爲您提供文件大小,可能只是一個名稱。 – index 2012-08-16 23:06:07

+0

看到這個,並認爲它可能會幫助你,他們有同樣的問題:[如何區分文件或文件夾](http://stackoverflow.com/questions/5893787/how-do-i-distinguish-a-file-或一個文件夾中的拖放事件在c) – JamaicanMeCrazy 2013-02-12 08:55:56

回答

-1

據我所知的瀏覽器(和JavaScript本身)沒有獲得用於安全目的的任何文件訪問的方法,所以你不能籤什麼文件實際上是。

我有這個問題在過去和那個工作我已經找到了最好的選擇,我的工作就是處理文件服務器端,並返回錯誤返回頁面上傳完成後。

雖然我很樂意看到更好的選擇。

3

,以確定是否已被刪除的文件夾取決於用戶代理的支持Filesystem API的能力。如果用戶代理支持Filesystem API(目前僅支持Chrome 21+),則可以使用Entry接口,該接口有兩個子接口:DirectoryEntryFileEntry。該接口本身具有isDirectoryisFile功能。如果不支持此界面,則無法在檢查DataTransfer對象時確定刪除的項目是否爲文件夾。

0

既然你不會允許文件夾拖放,第一次檢查,如果是文件夾或文件,僅次於如果它不是文件夾,然後檢查文件的擴展名。但IE < 11不支持文件API處理。希望能幫助到你。

相關問題