iT邦幫忙

0

javascript 上傳檔案

一般上傳檔案都是透過input選擇檔案然後上傳

想請問今天如果不透過input,
而是具有檔案在本機的絕對路徑的時候應該怎麼作?

例如C:\\users\\

2
dragonH
iT邦超人 6 級 ‧ 2019-10-28 00:49:59

一般上傳檔案都是透過input選擇檔案然後上傳

這個也只是前端將檔案 post 到你後端 server而已

所以重點還是在你的後端 api

你後端 api 收到檔案後

根據你的 code 來決定放哪裡

如果你想要的是把 input default 的值

設成某個 user 的檔案或資料夾

因為瀏覽器安全問題

無法

2
小魚
iT邦大師 1 級 ‧ 2019-10-28 07:43:39

除非是像IE這種不安全的瀏覽器,
一般來說都是不能直接讀取client端的檔案,
都是要透過上傳的方式,
我不知道你的問題在哪裡,
爲什麼要問這樣的問題?

1
浩瀚星空
iT邦大師 1 級 ‧ 2019-10-28 09:44:02

先不要來說你的行為可不可行好了。

其實基於本機安全性原則,沒有任何一個寫法跟應用的網頁程式。
可以自動讀取到本機的不開放資源。也就是說,網頁程式光要自動列表出本機的目錄列表就已經不行了。更不要說是讀到檔案了。

一般要能做到這樣的事,只有以下方式
1.自已開發的瀏覽器,也就是將瀏覽器行為改變後給你的網站用。
2.自行開發掛件。其實行為跟1一樣,只是開發自已的套件,然後由網頁去運行處理。

也就是說,自動這樣的行為是不允許的。就單純程式而言。只能透過用戶操作才可以。

1
froce
iT邦大師 2 級 ‧ 2019-10-28 11:20:23

你想想,網頁是不管信不信任都可以執行的,今天你有辦法叫browser直接存取本機檔案,那改天是不是會有惡意的小白寫個script,就能直接存取你電腦內部的系統檔?

比較可行的2個方案:
1.用回activeX...
2.在使用者本機上架websocket server,然後打開頁面的時候把檔案回頁面...
不管怎樣,都需要使用者自行確認這些行為是正常的才能做。

結論:叫你使用者自己按上傳檔案比較實在。

player iT邦大師 1 級 ‧ 2019-10-28 14:58:13 檢舉

1.ActiveX是IE限定
2.在使用者本機上架websocket server 會有遠端程式碼執行的爭議

froce iT邦大師 2 級 ‧ 2019-10-28 15:51:48 檢舉

對啊,所以看結論就好。

而且現在一堆網銀元件都靠2來做,還不限定遠端存取的ip...
我每季弱掃都要補一堆這種漏洞。

其實以前還可以偷用flash來處理,現在也已經不行了。
但我有碰過幾個還在用flash的。然後上面教怎麼去開通權限。
也算是另類的一種掛件就是了。
只是對使用者體驗不是很好。因為那個權限開通很麻煩。(但還是可以開通)
再加上現在的chrome已經開始不給用flash了。這招就那它成歷史吧。

我要發表回答

立即登入回答