2017-01-09 4 views
0

asyncfileupload 컨트롤을 사용하고 있으며 이미지 만 받아들이고 싶습니다. accept 속성을 사용했지만 작동하지 않고 OnClientUploadComplete 이벤트를 사용하여 컨텐츠 유형을 catch하고 서버 측에서 업로드를 중지하면 이벤트가 실행되지 않아 OnUploadedComplete이 실행되지 않습니다! 그리고 나는 그것을 서버 측에서 업로드하는 것을 멈출 방법을 모른다. 나는 OnUploadedComplete 이벤트에서 contentType을 확인하려고했는데, 그 이벤트는 실행되고 'else'로 이동하지만 보여줄 메시지가 표시되지 않습니다. 어떠한 제안?AsyncFileUpload에서 이미지 파일 만 허용 Asp.Net Webforms

C# 코드 :

`protected void fileUpload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
    { 
     if (fuImage.HasFile) 
     { 
      string contentType = fuImage.ContentType; 
      if (contentType == "image/jpeg" || contentType == "image/gif" 
       || contentType == "image/png") 
      { 
       string fileName = Path.GetFileName(e.FileName); 
       string fileUploadPath = Path.Combine(Server.MapPath("~/images/Resturant"), fileName); 
       fuImage.SaveAs(fileUploadPath); 

       var url = "~/images/Resturant/" + fileName; 
       ScriptManager.RegisterStartupScript(this, this.GetType(), "fileName", 
         "top.$get(\"" + hdfImagePath.ClientID + "\").value = '" + url + "';", true); 
      } 
      else 
      { 
      ucMessage1.MessageTitle = "Error Message"; 
      ucMessage1.MessageDetail = "Please Choose a valid image!"; 
      ucMessage1.MessageImage = "X"; 
      ucMessage1.Show(); 
     } 
    } 
}` 

디자인 :

<ajaxToolkit:AsyncFileUpload ID="fuImage" runat="server" OnUploadedComplete="fileUpload_UploadedComplete" /> 

답변

0

파일이 성공적으로 업로드되기 전에는 파일 확장자를 확인할 수 없습니다 의미 업로드하는 서버 측의 UploadedComplete 이벤트가 발생합니다.

+0

그래서이 이벤트에서 업로드를 롤백 할 수 있습니까? 또는 심지어 제어 배경을 변경합니까? –

+0

@RadwaAbdEllah 파일 이름과 경로가 있기 때문에 가능하다고 생각합니다. 따라서 형식 서버 측을 검사 할 수 있고 원하는 형식이 아닌 경우 이미지 (파일 및 db 레코드가있는 경우)를 삭제하십시오. – Mahdi

+0

이제 파일이 올바른 형식이 아닌 경우 컨트롤의'backColor'를'red'로 변경하고 싶습니다. 나는 if 루프에서 아무 것도 변경하지 않는다고 썼다. 'fuImage.BackColor = System.Drawing.Color.Red; ' –