2013-05-16 179 views
1

我想使用.NET將本地磁盤上的圖片文件上傳到Web服務器,在該服務器中,PHP腳本將接收它並保存到服務器。我不確定傳輸數據的首選方式,現在我意識到它並不像我希望的那麼簡單。從.NET客戶端上傳文件到服務器上的PHP

問題是,PHP的文件上傳機制只接受編碼爲multipart/form-data的數據,而我看不到一種方法讓WebClient以這種方式上傳文件,而無需將自己編碼到字節數組中並上傳。

這將是一個更好的解決方案:我應該經歷在客戶端上執行此編碼的麻煩嗎?或者,如果我只是使用WebClient.UploadFile,我應該能夠從php://input收到它,如果是這樣,它是否需要解碼?

我發現在這個和其他網站上做了編碼的幾個例子,所以我不需要幫助。我只想看看這種客戶端編碼是否合理或必要,或者我是否可以在服務器上完成這項工作,而不是使用$_FILES並以更「手動」的方式接收數據。

從長遠來看我將尋求更好地理解HTTP協議。

+0

你真正想實現的是什麼?上傳可以通過很多方式完成,但它取決於你想要做什麼 – Vineet1982

+0

我想用.NET將本地磁盤上的圖片文件上傳到網絡服務器,以適合被PHP接收並保存到服務器。 – Martin

+0

將文件上傳到PHP最簡單的方法是使用PUT HTTP方法。我不知道.NET中有哪些類型的HTTP庫,但是在PHP端,您可以從php://輸入中獲取PUT'ed文件。不需要編碼。 – Janoszen

回答

0

我已經計算出我自己的答案,這要歸功於Janoszen的評論。只是我想要的那種簡單。

下面是.NET客戶端(例如在Visual Basic)的摘錄:

Dim wc As New WebClient() 
wc.UploadFile(url, "PUT", filename) 

,並從服務器上的PHP:

file_put_contents(filename, file_get_contents('php://input')); 

感謝Janoszen!

相關問題