2014-05-16 18 views
5

Sto tentando di spostare il caricamento su un server remoto. Dopo scelgo un file con il codice qui sotto e fare clic su Carica il file viene caricato, ma restituisce un errore dicendo codice: messaggio "-200": "HTTP Error"Errore di caricamento plup-200 Errore 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) { 
     } 
     } 
    }); 

Che cosa posso fare per sfuggire questo errore e Continua? Nel mio caso FileUploaded e UploadProgress non vengono affatto colpiti - dopo che ho colpito il caricamento, sono passato direttamente alla funzione Error. Questo è davvero strano per me dal momento che dopo che controllo la cartella in cui dovrebbe essere e il file è lì.

Qualsiasi aiuto sarà molto apprezzato.

+0

Avete trovato qualche soluzione. Anch'io sto affrontando lo stesso problema. Alcuni file vengono caricati e per alcuni nonostante la dimensione sia entro il limite, ottiene l'errore HTTP. (-200) '. –

+0

Anche questo errore. I file che seguono circa 3Mb funzionano bene e soprattutto no, anche se la dimensione massima del file è impostata su 6mb – dunxz

risposta

0

Ho trovato lo stesso errore quando stavo usando PlUpload in un'applicazione MVC5. Il problema era che non è stato possibile trovare il metodo REST. PlUpload utilizzando una multipart per i dati. Il codice seguente mostra come questo potrebbe essere implementato in una 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); 
     } 

    }