2012-01-27 45 views
3

當我嘗試上傳文件使用HTTP POST與標頭Content-Type: multipart/form-data; boundary=-----NPRequestBoundary-----一切都按預期工作,但試圖使用Content-Type: multipart/form-data; boundary=-----NPRequestBoundary-----; charset=UTF-8導致完全空白的$ _FILES數組。

這是PHP或Web服務器的問題嗎?據我所知,這種形式的Content-Type是有效的。POST文件上傳 - multipart/form-data + PHP中的UTF錯誤?

回答

1

錯誤在SVN rev中修復。 #316373(5.3.9版本涵蓋它)。

1

因爲Content-Typemultipart/form-data,這意味着它是從零件構建而成,並且每個零件都可以有自己的Content-Type。字符集參數僅用於text/plain內容類型。因此,multipart/form-data內容類型是沒有意義的。

+0

你錯了我想 - 怎麼樣的文件名編碼?將字符集直接添加到「Content-Type」將會照顧它。最糟糕的是,我無法修改客戶端應用程序。 – kiler129 2012-01-27 03:44:15

0

我發現這個問題骯髒的解決方法。對我來說,這是臨時bcs它不能在litespeed下工作(我使用反向代理到apache來避免這個問題)。
<Location "/upload.php">
RequestHeader set Content-Type "multipart/form-data; boundary=-----NPRequestBoundary-----"
</Location>

這將迫使網絡服務器,以取代內容類型標題。現在我敢肯定 - 這是一個PHP錯誤(某人認爲字符集會在boundary=之前發生)