2017-04-27 14 views
1

私はファイルをアップロードするコードを持っています... onchangeイベントのファイルサイズ、フォーマットをチェックして物理フォルダにアップロードする前に。すべての検証が真であれば、Uploadボタンはonchangeイベントからトリガーされます。Page.IsValidは、asp.netでの妥当性検査エラーの後、常にfalseです。

正常に動作していますが、間違った形式のファイルをアップロードして検証エラーがポップアップし、次のファイルをアップロードします。Pag​​e.Isvalidはfalseなので、正しい形式/サイズのファイルもアップロードされません。この問題を解決する方法以下

はコードです:

javascriptの

function UploadFile(fileUpload) { 


    if (fileUpload.value != '') { 
     var title = document.getElementById("<%=txtTitle.ClientID%>").value; 
     var sFileName = fileUpload.value.toLowerCase(); 
     var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1]; 
     var file = (fileUpload.files[0].size/1024); 
     var limit = <%= ConfigurationManager.AppSettings["MaxLimit"]%>; 

     var maxlimit = limit * 1024; 
     var type = document.getElementById("<%=hdnType.ClientID%>").value; 
     if (title != "") { 
      if (file > maxlimit) { 


       fileUpload.value = null; 
       ShowAlert("Sorry the file you are trying to upload exceeds the allowed file limit. Allowed size is 10MB."); 

      } 
      else { 
       if (type == 1) { 
        if (sFileExtension != "png" && sFileExtension != "jpg" && sFileExtension != "jpeg") { 

         fileUpload.value = null; 
         ShowAlert("File Format not supported. Please upload .jpeg/.png files"); 


        } 
        else { 
         document.getElementById("<%=btnSave.ClientID%>").click(); 

        } 
       } 
} 
} 


<asp:FileUpload ID="upldfile" runat="server" onchange="UploadFile(this)" ClientIDMode="Static" /> 
<asp:Button ID="btnSave" runat="server" UseSubmitBehavior="false" ValidationGroup="save" Text="Save" style="display:none;" OnClick="Upload" data-dismiss="modal" class="btn btn-danger" /> 

アップロードイベント

public void Upload(object sender, EventArgs e) 
    { 
     if (Page.IsValid) 
     { 
      SavePortfolio(); 
     } 


    } 

答えて

0

はこの

をお試しください
function UploadFile(fileUpload) 
{ 
    if (fileUpload.value != '') { 
     var title = document.getElementById("<%=txtTitle.ClientID%>").value; 
     var sFileName = fileUpload.value.toLowerCase(); 
     var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1]; 
     var file = (fileUpload.files[0].size/1024); 
     var limit = <%= ConfigurationManager.AppSettings["MaxLimit"]%>; 
     var maxlimit = limit * 1024; 
     var type = document.getElementById("<%=hdnType.ClientID%>").value; 

     if (title != "") { 
      if (file > maxlimit) { 
       fileUpload.value = null; 
       ShowAlert("Sorry the file you are trying to upload exceeds the allowed file limit. Allowed size is 10MB."); 
       return; 
      } 
      else { 
       if (type == 1) { 
        if (sFileExtension != "png" && sFileExtension != "jpg" && sFileExtension != "jpeg") { 
         fileUpload.value = null; 
         ShowAlert("File Format not supported. Please upload .jpeg/.png files"); 
         return; 
        } 
        else { 
         document.getElementById("<%=btnSave.ClientID%>").click(); 
        } 
       } 
      } 
     } 
    } 
} 
+0

が機能しません。 fileupload.hasfileの背後にあるコードはfalseです – sara

関連する問題