2013-04-08 108 views
1

我想創建一個HTML5網站,用戶只需放下文件,然後按「提交」按鈕,這是一個JavaScript函數創建的拖放文件的.zip存檔。簡單的HTML5拖放文件網站網站,其中拖放的文件

我的問題是:這是否可能沒有上傳刪除的文件在網站上,但只使用保存的文件路徑(即「c:\ test \ droppedfile1.exe」,「c:\ test \ droppedfile2。 exe「) 並在本地文件夾中創建.zip文件?

+0

不,您不能在本地文件夾中創建zip文件。瀏覽器不會顯示JavaScript代碼的實際路徑名。但是,您可以使用HTML5文件API來讀取文件,並且可以即時構建zip文件,前提是您已經擁有適當的JavaScript代碼。 – Pointy 2013-04-08 15:06:23

回答

0

不,它不是純HTML/JS。 HTML/JS無法訪問您的硬盤。實際上,當您使用文件上傳框時,value設置爲C:/fakepath/nameoffile.ext(其中nameoffile.ext是磁​​盤上的文件名)。

如果您拖放或複製粘貼文件,它們會變成斑點。在這種情況下,原始文件路徑完全被破壞 - 它變成類似blob://lots-and-lots-of-gibberish的東西。

因此不,HTML/JS不提供任何方法從上載或從提供的文件路徑上傳文件路徑。


但是,在Chrome上,有HTML5 filesystem API,這可能會有所幫助。 Here's a tutorial on it

請注意,這將需要額外的權限,並且不會在其他瀏覽器上工作。


使用File API,您可以在選定的文件中讀取數據。你不能得到他們的路徑,但你可以讀取上傳框(或拖放文件)中選擇的文件中的數據,並使用你的JS函數壓縮文件。

+0

如果瀏覽器支持Filesystem API,則文件路徑可用。 – 2013-04-08 15:11:21

+0

@RayNicholus - 他們什麼時候提取該API的每個Web應用程序沙盒限制? – Quentin 2013-04-08 15:13:04

+0

@RayNicholus:包括,但它並沒有真正準備好使用網站(因爲只有鉻的東西) – Manishearth 2013-04-08 15:14:27

3

,而你不能直接從FS讀取文件,放置事件也讓您閱讀文件源(在therory)管的內容Jszip,然後讓用戶「下載」的zip文件

Here是和html5拖放演示,顯示讀取圖像文件時無法訪問客戶端路徑或將文件上傳到服務器

+0

這是你引用的一個非常有趣的插件。不知道爲什麼有人低估了這一點。 – 2013-04-08 15:18:56

+0

對於誰低估了這個,你能提一下你爲什麼這麼做嗎?也許我在這裏錯過了一些東西。 – 2013-04-08 15:25:15