2012-03-27 2 views
1

JQuery와 C#을 사용하여 파일 업로드를 수행하려고하는데 많은 문제가 있습니다. 파일을 업로드하는 방법을 알 수 없습니다. FileUpload를 사용하면 정상적으로 작동하지만 사용자가 동적으로 파일을 추가 할 수 있으므로 파일을 처리하기 위해 Jquery (다른 파일에 아약스 게시)를 사용하고 있습니다. 먼저 POST 및 enctype 오류가 발생했지만 이제는 아무 것도하지 않습니다. 파이어 버그가 아약스 코드가 작동하지 않는 것을 보여 주지만 나에게 아무 것도 말하지 않습니다. 여기 JQuery와 C#을 사용한 다중 파일 업로드

내 JQuery와 있습니다 :

function AddDocumentsDatabase() { 
    $('input:file').each(function (index) { 
     var fileName = $(this).val(); 

     $.ajax(
     { 
      type: "POST", 
      url: "../ajaxURLs/InsertDocument.aspx?requestNumber=" + reqNum + "&fileName=" + fileName, 
      contentType: 'multipart/form-data', 
      cache: false, 
      success: function (html) { 
       alert("File Inserted!") 
      } 
     } 
     ); 
    }); 
} 

그리고 여기 InsertDocument.aspx 코드 :

RequestDB db = new RequestDB(); 
    ApplicationFunctions app = new ApplicationFunctions(); 

    protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.Write("Hello"); 
    foreach (string key in Request.Form) 
    { 
     if (!key.StartsWith("fleBrowse")) continue; 
     { 
      Response.Write(Request.Form[key].GetType()); 
     } 

    } 
} 

그것이 내가 사과, 정말 쉬운 일이 있으면, 내 마음이 풀에서 실행되고 있지 않습니다 속도. 어떤 제안이라도 대단히 감사하겠습니다.

+3

당신의 자신의 비동기 FileUpload는 브라우저 지원 (HTML5, Flash, ...)에 따라 큰 작업입니다. 기존 구현이 있는지 확인해야합니다. 나는 plupload에 매우 만족합니다. http://www.plupload.com/ – jbl

+1

동의 -이 휠을 다시 발명 할 필요가 없습니다. 특히 jQuery에는 실제로 선택한 파일의 내용을 서버에 게시 할 수있는 기본 제공 기능이 없기 때문에 위에 게시 한 코드는 파일 자체가 아닌 파일 이름을 전송하므로 서버에서 수행 할 수 없습니다. 많은 재치. – Dave

답변

2

나는 shawleigh17와 동의한다; 그것은 큰 직업이고, 다른 사람들은 잘했습니다. jQuery FileUpload (http://blueimp.github.com/jQuery-File-Upload/)를 사용하여 큰 성공을 거두었습니다.

$.ajax(
{ 
    type: "POST", 
    url: "../ajaxURLs/InsertDocument.aspx?requestNumber=" + reqNum + "&fileName=" + fileName, 
    contentType: 'multipart/form-data', 
    cache: false, 
    success: function (html) { 
    alert("File Inserted!") 
    }, 
    error(jqXHR, textStatus, errorThrown) { 
    alert("Error: " + textStatus + ": " + errorThrown); 
    } 
});