2015-06-20 239 views
0

我正忙於構建一個從本地文件系統中拉出的小畫廊。我有一個獲取目錄中的元素:從webkitdirectory元素獲取絕對路徑

<input type="file" webkitdirectory> 

我則顯示所有的圖片和視頻在該目錄在頁面上的容器。

目前出於安全原因,我只能訪問相對路徑,因此我必須添加硬編碼的e:/ downloads才能在顯示文件時查找這些文件,因爲文件的位置在我的桌面上。

我想擴展它,所以我可以從本地文件系統的任何位置選擇一個目錄,但我需要aboslute路徑。目前只有IE能讓我獲得絕對路徑,chrome返回一個虛假路徑。我知道如何進入設置以允許本地文件系統文件包含在IE中,但我不知道如何在Chrome中啓用它。我想知道是否有一個選項允許在IE中這樣。

我已經做了搜索,大多數人都說這是不可能的,但是我相信必須有一個設置的地方,我希望有人知道。

這是我只是踢代碼,如果你想看看: https://jsfiddle.net/3mp1znx9/

請注意,因爲它是硬編碼到E:/下載,你可能想改變它,使其爲你工作。

如果您想查看它嘗試返回的絕對路徑,可以打開控制檯並運行名爲GetDirectory的函數。 (你也應該注意掉元素改變後的移除)

我希望我的問題很清楚,不會太長。謝謝。

摘要:
我想從Chrome中的元素訪問我的本地文件的絕對路徑。我已經可以在IE中完成了。

+0

由於安全限制,這不起作用。但是,您應該查看HTML5文件API(只需在Google中輸入)。 – reg4in

+0

感謝您的評論和信息。但是,如果我理解正確,它僅適用於正在上傳的文件。我沒有上傳任何文件,我只是讀取目錄中的所有內容。 – Chris

+0

這些文件不會被上傳,只是加載到本地內存中。 – reg4in

回答

0

我終於找到了解決我自己的問題。使用Chrome瀏覽器獲取絕對路徑幾乎是不可能的,它僅適用於Internet Explorer。

所以解決方案是使用臨時路徑。

URL.createObjectURL(e.target.files[0]) 

這就是需要什麼,然後我用這個作爲src。我希望這有助於別人偶然發現這一天。