2014-04-14 54 views
2

我使用的悬浮窗,以能够将多个文件上传到Web服务,但我一直得到错误:通过dropzone.js上传文件给出错误,请求格式无效:multipart/form-data;

System.InvalidOperationException: Request format is invalid: multipart/form-data;  boundary=----------WmBuH1mgT5UyAi5sEK0qnm. 
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() 
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest() 

这是我的C#功能

public bool InvokeTest(byte[] binaryarray, string docname) 

正如我试图避免的Page_Load并尽量做到没有一个工作表,并提交只有一个jQuery功能:

$('#dropzone').dropzone({ 
     url: '_upload/uploader.asmx/InvokeTest', 
     enctype: 'multipart/form-data', 
     maxFilesize: 1, 
     paramName: 'photos', 
     addRemoveLinks: true, 
     enqueueForUpload: false, 
    }); 

我的表单提交看起来很简单:

<form id="Form1" action="_upload/uploader.asmx/InvokeTest" method="post" enctype="multipart/form-data" runat="server" class="dropzone"> 

我的问题: 是否有可能使用悬浮窗没有“形式”,并张贴直接通过jQuery和避免对web服务我讨厌的错误....

期待任何想法的并或建议,

由于

回答

1

Dropzone.js并结合一个web服务&更具体工作得很好,它可以在场景中被使用,其中

  • 您正在使用的形式张贴到WebServiceURL
  • 您想上传多张图片

,其中,通过你的问题来看,你原本期待的事情。

下面是这种场景的详细例子。尽管在示例ServiceStack(而不是WCF)被用作WebService:[ Uploading images using ServiceStack and Dropzone ]

这表明您的WebService c#函数没有正确设置来处理发布请求。

另一个重要的dropzone配置是使用parallelUploads = 1.如果多个上传正在寻找访问服务器端实现中的相同memoryStream,我已经看到这是一个问题。

$('#dropzone').dropzone({ 
      parallelUploads: 1, 
      uploadMultiple: true, 
      autoProcessQueue: true 
     }); 
相关问题