2011-03-14 85 views
2

是否可以創建一個網頁讓用戶使用HTTP PUT將文件上傳到服務器? 哪些瀏覽器可以使用?從瀏覽器上傳HTTP PUT文件的網頁

特別喜歡PUT的主要原因是它在服務器上處理得更好(即不需要額外解析請求)。我知道至少可以使用java applet或類似的東西,但我只對至少一些瀏覽器的默認配置感興趣(如果可能,最好不要使用javascript)。

我發現了一些關於xhtml2.0(xforms1.1)的提及,但是如何做到這一點對我來說還是很不清楚。

回答

5
  • 沒有JavaScript就無法完成。
  • 在瀏覽器中是不支持的話,你可以用XHR PUT請求,但
    • 支持不具有普遍性
    • 你不能從用戶的文件系統中讀取文件

一POST請求可能是要走的路。

我發現了一些關於xhtml2.0(xforms1.1)的提及,但如何做到這一點對我來說還是很不清楚的。

瀏覽器不支持此操作。

+0

「無法從用戶的文件系統讀取文件」 - 這是否意味着使用HTTP PUT而不是HTTP POST來上傳本地文件的傳統文件上載形式幾乎是不可能的? – HoverHell 2011-03-15 11:38:32

+0

否。這意味着您無法使用JavaScript訪問這些文件。你不能在一個HTML表單中使用PUT作爲一種方法,原因不同(因爲沒有瀏覽器支持它,並且HTML並不建議它們這樣做) – Quentin 2011-03-15 11:46:22

+0

這當前正在改進[支持HTML 5](http ://www.html5rocks.com/en/tutorials/file/dndfiles/)。 – 2014-09-23 12:26:38

1

在服務器端可以接受一個帶腳本的PUT請求(例如PHP),但它不會使任何東西更優化。你仍然需要檢查合法的文件名,權限等。

+4

這將是有禮貌的留下你的downvote評論。 – vbence 2011-03-14 10:04:23

+0

AFAIU它仍然會更加優化,因爲在接受數據之前可能已經完成了許可/ ......處理,並且仍然不需要執行POST多形式解碼。不確定前者對服務器範圍之外的某些腳本是否簡單,但這並不重要。 – HoverHell 2011-03-15 11:37:01

+0

這就是要點:出於簡單的安全原因,你必須有一個腳本等待服務器端的文件。將多部分邊界添加到請求主體實際上沒有開銷。 – vbence 2011-03-15 14:54:26