2016-08-06 13 views
0

今、私はファイルのアップロードに取り組んでいます。だから私はajax呼び出しを使ってコードを書いていました。私のローカルサーバーからファイル(GB)をアップロードしているとき、これは完全に動作しています。大きなファイルのアップロードajaxの呼び出しで失敗しました

$.ajax({ 
    type: "POST", 
    url: "process/uploadFlatFile.htm", 
    enctype : 'multipart/form-data', 
    //timeout: 0, 
    crossDomain: true, 
    data : formData, 
    processData: false, 
    contentType: false, 
    cache: false, 
    dataType: 'json', 
    xhr: function() { 
     myXhr = $.ajaxSettings.xhr(); 
     //myXhr = new XMLHttpRequest(); 
     console.log("myXhr: " + myXhr.upload); 
     if(myXhr.upload){ 
      console.log("adding progress event listener"); 
      myXhr.upload.addEventListener('progress', showProgress, false); 
     } else { 
      console.log("Upload progress is not supported."); 
     } 
     return myXhr; 
    },beforeSend: function(xhr, opts) { 
     console.log("beforeSend:xhr: " + xhr + ", opts: " + opts); 
     currXhr = xhr; 
     showProgressBar(); 
     status.empty(); 
     var percentVal = '0%'; 
     bar.width(percentVal); 
     percent.html(percentVal); 
     $(cancelSelector).removeAttr('disabled'); 
    }, 

    success: function(result,status,xhr) { 
     console.log("success:result: " + result); 
     console.log("success:status: " + status); 
     console.log("success:xhr: " + xhr); 
     var percentVal = '100%'; 
     bar.width(percentVal); 
     //$("#fountainGG").hide(); 
     percent.html(percentVal); 
     $.unblockUI({ 
      onUnblock: function(){ 
       if(result=="success"){ 
        console.log("SUCCESS PART :") 

        alertMessage("Success","File Uploaded Successfully","info"); 
        setTimeout(function(){ 
         window.location.href = "processFlow.htm"; 
         //newProcessClicked('yes'); closeConDiv() 
        }, 2000); 
       }else{ 

        alertMessage("Error","Error in upload. Try Again !","info"); 
       } 
      } 
     }); 
    }, 
    complete: function(xhr,status){ 
     console.log("COMPLETE PART :") 
     console.log("complete:status: " + status + ", xhr: " + xhr); 
     $('#btnGoUpload').prop('disabled', false); 
    }, 
    error: function(xhr, statusText, err) { 
     $.unblockUI(); 
     console.log("statusText: " +statusText); 
     console.log("error: " + err); 
     var msg = "Error in uploading file. Try Again !"; 
     if (err == "abort"){ 
      msg = "File upload aborted."; 
     } 
     alertMessage("Error",msg,"info"); 
    } 
}); 

しかし、私は時間のカップルの後にAJAX呼び出しの一部をエラーに起こって公開サーバからGB(30 GBを超える)ファイルをアップロードしています。私は接続タイムアウト問題だと思いますか?接続タイムアウト問題の場合、どうすれば解決できますか?

ini_set('max_execution_time', 0); 

はあなたが必要とする、それはまたあなたをブロックすることができ、最大アップロードサイズを大きくするには:

+0

「ajax呼び出しのエラー部分」にはどのようなエラーが記録されますか?つまり、statusTextとerrとは何ですか? –

+0

statusTextに「エラー」が表示されます – user3159781

+0

とは何ですか? –

答えて

0

あなたは、このコマンドを使用して制限を可能な時間を回避することができ、PHPのレシーバスクリプトの開始に入れることにしますあなたのphp.iniのupload_max_filesizeとpost_max_sizeの値を設定します

; Maximum allowed size for uploaded files. 
upload_max_filesize = 40M 

; Must be greater than or equal to upload_max_filesize 
post_max_size = 40M 

を編集して、Webサーバーを再起動します。

+0

これはPHPではありません。これはjavascriptコード – user3159781

+0

です。申し訳ありませんが、 "process/uploadFlatFile.htm"のhtmlでアップロードされたファイルを処理することが可能であるかどうかは分かりませんでした。どんなものであれ、受信サーバーの設定ファイルを見てください。 – technico

+0

あなたのサーバーは何ですか? – technico

関連する問題