我試圖理解錯誤……
我有一個允許用戶上傳CSV的網絡應用程序.如果文件類型不是CSV,則不會發生任何操作,頁面只顯示“無效的文件類型”.
如果用戶嘗試上載無效的文件類型并反復單擊觸發處理上載的PHP文件的按鈕,則PHP文件最終會無響應,并且網站崩潰時出現以下錯誤:
"tcp_error: The Web Server may be down, too busy, or experiencing other problems preventing it from responding to requests. You may wish to try again at a later time"
我認為這與它是一個持久的HTTP連接并且它被請求淹沒的事實有關嗎?
我想知道這個的確切來源以及如果用戶反復嘗試上傳無效文件類型而避免崩潰的最佳修復.
HTML摘錄:
function stopUpload(success){
console.log(success);
var csv1 = success['csv1'];
var csv2 = success['csv2'];
var csv3 = success['csv3'];
var csv4 = success['csv4'];
var csvError = success['error'];
var id = success['id'];
$('.js-wf-error').text(csvError);
if (!csvError) {
runWF(id, csv1, csv2, csv3, csv4);
}
}
Run Walking Farm
CSV-upload.php的
(...upload handling...)
?>
window.top.window.stopUpload(<?php print json_encode($returnData); ?>);
解決方法:
嘗試給它一個鏡頭.它可能工作,但不能保證:
通過html表單上傳文件時,可能需要幾秒鐘才能成功上載表單并顯示響應頁面(PHP).人們可能會感到不耐煩,并多次單擊“上傳”按鈕,這可能導致重復的表單提交或上傳.通常它真的是一個問題&你可能希望防止這種情況發生.
您可以使用javascript來處理它:
第一步是為您的提交按鈕提供唯一ID,例如id =“myButton”:
第二步(也是最后一步)是給標簽提供兩個Javascript命令.第一個將告訴瀏覽器在提交表單后禁用提交按鈕,第二個將更改按鈕文本以讓用戶了解正在發生的事情.這是要添加到表單標記的代碼:
οnsubmit="document.getElementById('myButton').disabled=true;
document.getElementById('myButton').value='Uploading to server, please wait...';"
您的表單標簽看起來像:
οnsubmit="document.getElementById('myButton').disabled=true;
document.getElementById('myButton').value='Uploading to server,please wait...';"
>
而已.這個技巧應該適用于大多數現代瀏覽器(IE 5,FireFox,Opera,…).
是的,我錯過了一些事情,知道它是否屬實.
標簽:php,tcp,http
來源: https://codeday.me/bug/20190830/1771210.html