2016-09-07 6 views
0

c#、js、jqueryで1つのページャWebサイトを作成しました。私はアップロードのためのC#コントローラを呼び出す通常のアップロードフォームを持っています。アップロードが同じウィンドウで完了しているかどうかがリフレッシュされ、すべてのファイルのリストに新しいファイルが表示されます。同じ名前のjQueryファイルをアップロードできない

ユーザーは、ファイルにエラーがあり、ファイルを再アップロードすることがあります。ページがリダイレクトされていない場合、ファイルはアップロードできません。私のトリガー機能はもう働きません。

手動でページを更新せずに全く同じ名前でファイルを2回アップロードするにはどうすればよいですか?

私のアップロードトリガ機能

// formUploadRisk-Formular open 
 
    $("#uploadRiskPolicyFile").change(function() { 
 
     if (confirm("Would you like to upload the file?")) { 
 
      var riskId = $(managementRiskPdfMenu).data("riskId"); 
 
      var control = document.getElementById("uploadRiskPolicyFile"); 
 
      var files = control.files[0]; 
 
      var success = UploadRiskPdf(riskId, 1, files); 
 
      if (success) { 
 
       LoadManagementPdfMenu(riskId); 
 
      } 
 
      return false; 
 
     } 
 
    });

私uploadfunction

function UploadRiskPdf(riskId, documentTypeID, files) { 
 

 
    var result = false; 
 

 
    // Methode to save 
 
    var fd = new FormData(); 
 

 
    fd.append('file', files); 
 

 
    var uploadURL = "documents/upload/risk/" + riskId + "/" + documentTypeID; 
 

 
    var jqXHR = $.ajax({ 
 
     xhr: function() { 
 
      return $.ajaxSettings.xhr(); 
 
     }, 
 
     url: uploadURL, 
 
     type: "POST", 
 
     async: false, 
 
     enctype: 'multipart/form-data', 
 
     contentType: false, 
 
     cache: false, 
 
     processData: false, 
 
     data: fd, 
 
     success: function (response) { 
 
      var node 
 
      result = true; 
 
      var d = data; 
 
     }, 
 
     error: function (data) { 
 
      alert("Some error!") 
 
     } 
 
    }); 
 

 
    return result; 
 
}

と私のhtmlは、LiをappendetますKEこの

var documentRow = $.parseHTML('<div><span><a class="risikoPdf" href="documents/customer/' + value.DocumentID + '" target="_blank"><i style="margin-right:5px;" class="fa fa-file-pdf-o fa-2x"></i>' + value.UploadDate + '_' + value.ProgramCode + '</a></span><span class="document-edit-delete fa fa-trash fa-2x"></span></div>'); 
 

 

 
$("#" + layoutId).append(documentRow); 
 
       

と私のhtml

<div id="uploadPdfDocumentPolicy" class="uploaderRisiko"> 
 
       <div class="browser"> 
 
        <label> 
 
         <span>Policen</span> 
 
         <input id="uploadRiskPolicyFile" class="fa fa-plus-circle fa-lg" type="file" name="FileUploadPolicy" title="Klicken, um eine weitere Rechnung hochzuladen" /> 
 
         <i class="fa fa-plus-circle fa-lg"></i> 
 
        </label> 
 
       </div> 
 
      </div> 
 
      <div id="uploadPdfDocumentBill" class="uploaderRisiko"> 
 
       <div class="browser"> 
 
        <label> 
 
         <span>Rechnungen</span> 
 
         <input id="uploadRiskBillFile" class="fa fa-plus-circle fa-lg" type="file" name="FileUploadBill" title="Klicken, um eine weitere Rechnung hochzuladen" /> 
 
         <i class="fa fa-plus-circle fa-lg"></i> 
 
        </label> 
 
       </div> 
 
      </div>

答えて

0

私は私の問題を解決しました。

値が空でないかどうかをチェックするチェッカー変数を作成しました。成功した後、私は入力フィールドの値をクリアします。なぜなら、これはJSの変更機能への変更なので、この関数に再び入ります。つまり、なぜstatの場合にckeckerが必要なのかです。

$("#uploadRiskPolicyFile").change(function() { 
 
     var checker = $("input[name='FileUploadPolicy']").val(); 
 
     if (checker != '') { 
 
      if (confirm("Willst du das File hochladen?")) { 
 
       var riskId = $(managementRiskPdfMenu).data("riskId"); 
 
       var control = document.getElementById("uploadRiskPolicyFile"); 
 
       var files = control.files[0]; 
 

 
       var success = UploadRiskPdf(riskId, 1, files); 
 
       if (success) { 
 
        LoadManagementPdfMenu(riskId); 
 
        $("input[name='FileUploadPolicy']").val(''); 
 
       } 
 
      } 
 
     } 
 
    });

関連する問題