2012-01-11 161 views
0

我有一個C客戶端需要上傳文件到Web服務器。 我打開文件並使用Windows庫發送它。從C客戶端上傳文件到PHP服務器

在服務器端,我想編寫一個保存文件的PHP腳本。

問題1: 因爲這不是一般的HTML表單POST給PHP - 我該如何與它的數據一起傳送? 建議使用POST'/upload.php?file=filename'並在正文中發送數據? 如果我使用這個,我可以通過$ _GET獲取文件名,並通過$ _POST獲取文件內容。

問題2: 如果文件跨越超過1包,會發生什麼?我需要在PHP端以某種方式跟蹤連接以將POST主體附加到文件。有沒有乾淨的方法來做到這一點?

謝謝!

+0

**一次**問題請一次^ _^ – Neal 2012-01-11 20:07:54

回答

0

你應該試試libcurl,它也可以做文件上傳。

或者,您可以瞭解multipart/form-data MIME類型以及它如何編碼文件和元數據。簡而言之,您將請求主體分割爲具有邊界的部分,併爲每個文件添加標題。

+0

我不能在我的項目中使用libcurl。 我正在使用WinHTTP(讀取整個文件並將其發佈到php腳本_ – user1144031 2012-01-11 20:36:51

+0

哦。那麼,如果可以使用multipart/form-data格式(它應該),該文件應該在PHP中的$ _FILES數組中找到,就像它被瀏覽器發送時一樣,如果它真的只是發送文件作爲整個請求體,那麼很糟糕,請使用GET。 – 2012-01-11 20:49:26

+0

而在你問之前,我相信你需要閱讀一個「文件」在第二種情況下調用'php:// input'來接收這些數據,而且我不確定它在這之前不在RAM中(因爲PHP通常會分析POST數據並在實際啓動之前填充$ _POST數組腳本)。 – 2012-01-11 20:52:09

相關問題