2014-05-16 31 views
5

Próbuję przenieść przesyłanie na serwerze zdalnym. Po tym, jak wybrać plik z kodem poniżej i kliknij prześlij plik zostanie przesłany, ale powróci kod błędu mówiąc: komunikat „-200”: „Błąd HTTP”Błąd przesyłu -200 Błąd HTTP

 var uploader = new plupload.Uploader(
     { 
      runtimes : 'html4, html5, flash, silverlight', 
      browse_button : 'bt_browse', 
      container: document.getElementById('container'), 
      url : 'http://remote.com/upload.php', 
      silverlight_xap_url : 'js/Moxie.xap', 
      chunks_size: '20mb', 
      max_retries: 3, 
      filters : { 
      max_file_size : '100mb' 
     }, 
     multi_selection : true, 
     init: { 
     PostInit: function() { 
       document.getElementById('filelist').innerHTML = ''; 
       document.getElementById('bt_uploadfiles').onclick = function() { 
        uploader.start(); 
        return false; 
       }; 
     }, 
     FilesAdded: function(up, files) { 
      plupload.each(files, function(file) { 
        //build list 
    }}, 
     UploadProgress: function(up, file) { 
     $("#progressBar"+file.id).val(Math.round(file.percent)); 
      if(Math.round(file.percent)==100){ 
       $("#progressBar"+file.id).hide(); 
       $("#deleteFile" + file.id).hide(); 
      } 
     }, 
     FileUploaded: function(up, file, info) { 
      if(file!=undefined) { 
       var json = $.parseJSON(info.response); 
       if(json.error == undefined) 
        moveFile(json.result, file.name, file.id); 
      } 
     }, 
     UploadComplete: function(){ 
     }, 
     Error: function(up, err) { 
     } 
     } 
    }); 

Co mogę zrobić, aby uniknąć tego błędu i dalej? W moim przypadku FileUploaded i UploadProgress nie są w ogóle hitem - po tym, jak trafiłem upload, przeszedłem bezpośrednio do funkcji Error. To naprawdę dziwne, ponieważ po tym sprawdzam folder, w którym powinien być i plik tam jest.

Każda pomoc będzie doceniana.

+0

Znalazłeś jakieś rozwiązanie. Mam również do czynienia z tym samym problemem. Niektóre pliki są przesyłane i dla niektórych pomimo tego, że rozmiar jest z limitem, otrzymuje 'Błąd HTTP. (-200) '. –

+0

Otrzymuję również ten błąd. Pliki poniżej około 3 MB działają poprawnie, a powyżej nie, mimo że maksymalny rozmiar pliku wynosi 6 MB – dunxz

Odpowiedz

0

Ten sam błąd wystąpił podczas korzystania z PlUpload w aplikacji MVC5. Problem polegał na tym, że nie można było znaleźć metody REST. PlUpload przy użyciu wieloczęściowy dla danych. Poniższy kod pokazuje, jak można to zaimplementować w interfejsie WebAPI

public class UploadFilesController : ApiController 
{ 

    [HttpPost] 
    [Route("UploadFiles")] 
    public async Task<HttpResponseMessage> PostFormData() 
    { 
     // Check if the request contains multipart/form-data. 
     if (!Request.Content.IsMimeMultipartContent()) 
     { 
      throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); 
     } 

     string root = HttpContext.Current.Server.MapPath("~/App_Data"); 
     var provider = new MultipartFormDataStreamProvider(root); 

     try 
     { 
      // Read the form data. 
      await Request.Content.ReadAsMultipartAsync(provider); 
      var TestId = provider.FormData.Get("TestId"); 
      var chunk = provider.FormData.Get("chunk"); 
      var chunks = provider.FormData.Get("chunks"); 
      var fileName = provider.FormData.Get("name"); 

      int chunkId = Convert.ToInt32(chunk); 
      int totalChunks = Convert.ToInt32(chunks); 
      Boolean isLastChunch = chunkId == totalChunks - 1; 


      foreach (MultipartFileData file in provider.FileData) 
      { 
       //Console.WriteLine(file.Headers.ContentDisposition.FileName); 
       //Console.WriteLine("Server file path: " + file.LocalFileName); 
       string FileDestination = Path.GetDirectoryName(file.LocalFileName) + @"\" + fileName; 

       using (FileStream fileUpload = new FileStream(file.LocalFileName, FileMode.Open)) 
       { 
        using (var fs = new FileStream(FileDestination, chunkId == 0 ? FileMode.Create : FileMode.Append)) 
        { 
         var buffer = new byte[fileUpload.Length]; 
         fileUpload.Read(buffer, 0, buffer.Length); 
         fs.Write(buffer, 0, buffer.Length); 
        } 
       } 
       File.Delete(file.LocalFileName); 
      } 

      if (isLastChunch) { 
       // Do something with the completed file 
      } 

      return Request.CreateResponse(HttpStatusCode.OK); 
     } 
     catch (System.Exception e) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e); 
     } 

    }