2013-06-19 6 views
0

제 코드는 HTML5와 Silverlight에서 작동합니다. 그러나 플래시 또는 HTML4를 사용하면 업로드 양식이 중단됩니다. 업로드 된 디렉토리를 확인하면 첫 번째 파일 만 업로드됩니다.plUpload 하나의 파일 만 서버에 업로드 - HTML4

$("#origShapeUploader").pluploadQueue({ 

runtimes: 'flash,html4', 
url: 'upload.aspx?originals=yes', //with a query string of yes, the files being uploaded won't be given a prefix of 'MOD' 
max_file_count: maxfiles, 
filters: [ 
    { title: "Shape files", extensions: "shp,dbf,prj,shx"} //these are the only file types allowed 
    ], 
multi_selection: true, 
flash_swf_url: '/javascript/plupload.flash.swf', //in case silverlight and html5 support doesn't exist 
silverlight_xap_url: '/javascript/plupload.silverlight.xap', //silverlight browser extension 


}); 

나에게이 비명 서버 측 핸들러 문제, 그래서 여기에 업로드를 처리하기위한 내 코드의 MOD 접두사의 다른 부분에 사용되는입니다 : Screenshot

다음은 업 로더 중 하나에 대한 내 자바 스크립트입니다 내 프로그램.

if (Request.Files.Count > 0) 
    { 

    int chunk = Request["chunk"] != null ? int.Parse(Request["chunk"]) : 0; 
    string fileName = Request["name"] != null ? Request["name"] : string.Empty; 

    HttpPostedFile fileUpload = Request.Files[0]; 

    var uploadPath = Server.MapPath("~/uploaded-files"); 
    if (Request.QueryString["originals"] == "yes") 
    { 
     using (var fs = new FileStream(Path.Combine(uploadPath, fileName), chunk == 0 ? FileMode.Create : FileMode.Append)) 
     { 
      var buffer = new byte[fileUpload.InputStream.Length]; 
      fileUpload.InputStream.Read(buffer, 0, buffer.Length); 
      fs.Write(buffer, 0, buffer.Length); 
     } 
    } 
    else 
    { 
     using (var fs = new FileStream(Path.Combine(uploadPath, "MOD" + fileName), chunk == 0 ? FileMode.Create : FileMode.Append)) 
     { 
      var buffer = new byte[fileUpload.InputStream.Length]; 
      fileUpload.InputStream.Read(buffer, 0, buffer.Length); 
      fs.Write(buffer, 0, buffer.Length); 
     } 


    } 

} 당신은 백 엔드에서 적어도 뭔가를 반환해야

+0

(이전 작업에서) 코드에 액세스 할 권한이 없지만 다중 업로드 도구의 각 항목에 대한 처리기를 호출하는 것처럼 보였습니다. 이 경우 HTML 4 모드에서 첫 번째 항목 만 업로드하는 것이 아니라 여기에서 볼 수 있습니다. –

+0

예, 각 파일의 처리기를 호출 ... 나는 그것을 알아 냈다고 생각합니다. 나는 무작위로 테스트 목적을 위해 response.write를 넣었다. .. 그리고 지금 그것은 작동한다? 나는 Flash/HTML4가 어떤 유형의 응답을 찾고, 아무것도 출력하지 않기 전에 ... 거기 앉아서 기다릴 것이라고 생각한다. 이제 HTML 처리기를 친 때마다 어떤 종류의 HTML을 출력 했으므로 작동합니까? –

+0

그건 만족스런 대답이 아니에요. 그것을 밖으로 가지고 나가 그것을없이 작동하는지보십시오. 어딘가의 나쁜 건물일지도 모릅니다. 낡은 물건을 치우기 위해 한두번 재건을 시도했다고 가정합니까? –

답변

1

은 - 확인을 완료, 또는 어떤 종류의 JSON 확인. 일부 Flash Player에는 서버에서 출력이 반환되지 않으면 요청 완료를 인식하지 못하는 버그가 있습니다. HTML4의 경우와 마찬가지로 작동합니다.