2013-02-08 2 views
0

MVC3 애플리케이션에 ajax 파일 업 로더가 있습니다. Firefox 및 Chrome에서 절대적으로 작동하지만 IE9 및 IE8에서는 작동하지 않습니다. 내가 파일을 업로드 할 때 IE에서 서버 측에 잘못된 파일 이름을 부여합니다. 여기 IE9에서 Ajax 파일 업 로더가 작동하지 않습니다.

내가 qqfile 매개 변수를 대신 제공하는 파일 이름의 IE에서이 작업을 실행 한

[HttpPost] 
    public ActionResult UploadDocument(string qqfile, int id) 
    { 

    // code for saving File 
    } 

, 그것은 나에게 파일을주고 내 업 로더 코드

<script type="text/javascript"> 
    function InitializeUploader() { 
      Dname = []; 
      var uploader = new qq.FileUploader({ 
       multiple: true, 
       element: document.getElementById('file-uploader'), 
       action: '@Url.Action("UploadDocument","Project")', 
       debug: true, 
       params: { id: $("#Id").val() }, 
       onSubmit: function (id, fileName) { 
       }, 

       onComplete: function (id, fileName, responseJSON) { 
        alert(responseJSON.fileName); 
        $("#DocumentName").val(responseJSON.fileName); 
        fileSize = responseJSON.size; 
        Dname.push(responseJSON.fileName); 
        type = responseJSON.type; 
       } 

      }); 
     } 

</script> 
<form method="post" enctype="multipart/form-data" action="" style="margin-left: 4px; 
      margin-top: 0px;" id="documentUploadForm"> 
      <div id="file-uploader"> 
       <input type="file" id="uplodfile" /> 
       <input class="button" type="button" value="Upload" id="UploadDocbtn" style="float: right; 
        width: 100px;" /></div> 
      </form> 

서버 측 조치입니다 System.Web.HttpPostedFileWrapper과 같은 파일도 제대로 저장되지 않습니다. 이 브라우저 문제가 발생하지 않거나 IE가 일부 스크립트를 차단합니다. IE에서 로더까지 아약스 파일을 사용하여 파일을 저장할 수있는 방법은 무엇입니까?

+0

가 대신 컨트롤러 액션 –

답변

1

실제로 IE는 올바르게 작동해야합니다. 대신 UploadDocument(string qqfile, int id) 당신은 당신이 지금 받고

어떤 파일 이름 명확하지 qqfile.SaveAs("path to file")UploadDocument(HttpPostedFileWrapper qqfile, int id) 파일을 저장해야해야한다. 가능하면 문자열로 변환 HttpPostedFile의 결과이며 IE는 원래 객체 유형 대신 파일 이름을 반환하기 위해 해당 변환에 필요한 일부 정보를 반환하지 않습니다. 이 줄

[HttpPost] 
    public ActionResult UploadDocument(System.Web.HttpPostedFileWrapper qqfile, int id) 
    { 
    qqfile.SaveAs("filename"); 
    // code for saving File 
    } 

그것은 모든 브라우저에서 잘 작동합니다

+0

에'HttpPostedFileWrapper qqfile'를 사용 qqfile''문자열을 사용하는 것이 mozila에서 작동하지 않습니다 : 같은 것을 할 시도 System.Web.HttpPostedFileWrapper qqfile에 대한 null 값 file.please를 업로드하면 mozila로 어떻게 할 수 있는지 알려주시겠습니까? – Shivkumar

+0

방화 광에서 오류가 있는지 확인하십시오. 그리고 네트워크 탭을 확인하십시오 - 서버로 파일을 전달합니까? –

+0

또한 정확한 플러그인을 사용하고 있습니까? –

관련 문제