Plupload Error语言 - 200 HTTP Error



我正在尝试在远程服务器上移动上传。在我选择一个文件与下面的代码,并点击上传文件是上传,但一个错误返回说代码:"-200"消息:"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) {
         }
       }
    });

我怎么做才能避免这个错误并继续?在我的情况下,FileUploaded和UploadProgress根本没有被击中-在我点击上传后,我直接移动到错误功能。这对我来说真的很奇怪,因为之后我检查了它应该在哪里的文件夹,文件在那里。

我在MVC5应用程序中使用PlUpload时遇到了同样的错误。问题是找不到REST方法。PlUpload使用multipart来存放数据。下面的代码展示了如何在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);
        }
    }

相关内容

  • 没有找到相关文章

最新更新