我使用jQuery-File-Upload與jQuery-Iframe-Transport試圖獲得對IE舊版本的支持。iframe傳輸不傳輸任何數據
我,這樣它的行爲或多或少在所有瀏覽器相同的方式設置forceIframeTransport
選項true
,但我似乎並沒有得到任何數據傳回在服務器端,無論瀏覽器時,它使用iframe傳輸。
我吐出來的請求頭服務器端和我回去:
array(
Host => "*******"
Connection => "keep-alive"
Content-Length => "0"
Accept => "*/*"
Origin => "**************"
X-Requested-With => "XMLHttpRequest"
User-Agent => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17"
DNT => "1"
Referer => "***********"
Accept-Encoding => "gzip,deflate,sdch"
Accept-Language => "en-GB,en-US;q=0.8,en;q=0.6"
Accept-Charset => "ISO-8859-1,utf-8;q=0.7,*;q=0.3"
Cookie => "*********"
)
[*****
S表示刪剪掉的不雅出信息;你不需要這個;)]
看起來不錯,但$_REQUEST
是空的(即array()
),輸入緩衝器爲空太:
$handle = fopen('php://input', 'r');
$file_data = '';
while(($buffer = fgets($handle, 4096)) !== false) {
$file_data .= $buffer;
}
fclose($handle); // $file_data = '';
這一切都工作得很好,當我沒」 t使用iframe傳輸,但我需要IE支持...沒有人有使用iframe傳輸文件的經驗,並可能知道爲什麼沒有數據通過?
當我使用jQuery-File-Upload/js/jquery.iframe-transport.js和力IFRAME運輸它工作在Chrome,但要求甚至不使它在IE服務器。
當我使用jquery-iframe-transport/jquery.iframe-transport.js和力IFRAME運輸它在Chrome打破,但這是很好的,因爲Chrome支持正確XHR文件傳輸,和至少打在IE 但沒有數據來通過服務器的請求。
我已經更新了我的腳本爲支持傳輸方法:
if(empty($_FILES)) {
$handle = fopen('php://input', 'r');
$file_data = '';
while(($buffer = fgets($handle, 4096)) !== false) {
$file_data .= $buffer;
}
fclose($handle);
} else {
$file_data = file_get_contents($_FILES['files']['tmp_name'][0]);
}
但同樣,我似乎仍不能得到在IE中的任何數據,無論我做什麼。
當我說「IE」時,我現在正在專門測試IE 8。但我需要支持回到7。 This guy聲稱支持一路回到IE 6.
感謝您的分享! – Saperlipopette 2013-05-27 14:28:56
亂碼通過尋找其他IE/9與jQuery文件上傳問題的很多網站。搜索'iframe傳輸ie8無法正常工作'後,我發現這一點 - 你救了一天!謝謝 :) – Hippie 2014-05-02 00:12:39