2012-01-30 48 views

回答

0

AFAIK沒有辦法做到這一點。

The manual狀態:

PHP://輸入不可用ENCTYPE = 「多部分/格式數據」

如果您上傳了文件,MIME類型應爲multipart/form-data - 因此php://input將不可用。

話雖如此,通常應該沒有理由爲什麼你需要在這種情況下得到原始身體。爲了獲取文件數據,您必須正常使用$_FILES陣列。

如果您展開爲什麼需要這樣做,我會幫助您找到適合您需求的解決方案。

+0

REST請求。 – 2012-01-31 00:48:08

+0

POST方法在技術上與REST不兼容,因爲它不[idempotent](http://en.wikipedia.org/wiki/Idempotence)。如果你想用REST上傳文件,你應該使用PUT方法。我明白這對於Web瀏覽器來說並不是一個真正的主張,但是如果你想在技術上是正確的,那麼你不應該在REST請求中使用POST來做任何事情。如果你想繼續使用POST,@ Wrikken的答案可能適合你的目的。 – DaveRandom 2012-01-31 09:17:40

+0

我沒有使用網絡瀏覽器。 PUT將如何使它與衆不同? – 2012-01-31 14:17:13

0

http://www.php.net/manual/en/wrappers.php.php

PHP://輸入不可用ENCTYPE = 「多部分/格式數據」。

...這是stricly真實的,但你可以通過之前在Web服務器你重置enctype繞過它到達PHP。那麼$_FILES數組將是空的。假設Apache使用mod_headers:

RequestHeader unset Content-Type 
+0

'unsetting enctype' - 我想你的意思是取消設置'Content-Type',這就是'enctype'在HTTP請求的上下文中轉換的內容...... – DaveRandom 2012-01-30 20:07:32

+0

是的,結果相同,但技術上更正確地說明它是這樣。 – Wrikken 2012-01-30 20:10:04

相關問題