我正在使用dropzone将多个文件上传到Web服务,但是我一直在收到错误:
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">
我的问题: 是否可以使用dropzone而不使用&#34; form&#34;并通过jQuery直接发布它,避免我在webservice上的讨厌错误......
期待任何想法和/或建议,
由于
答案 0 :(得分:2)
Dropzone.js与webservice&amp;更具体地说,它可以用于场景,其中
,根据你的问题判断,你原本打算这样做。
以下是这种情况的详细示例。虽然在示例中ServiceStack(而不是WCF)被用作WebService:[ Uploading images using ServiceStack and Dropzone ]
这表明您的WebService c#函数未正确设置以处理发布请求。
另一个重要的dropzone配置是使用parallelUploads = 1.如果多个上传要在服务器端实现上访问相同的memoryStream,我已经看到这是一个问题。
$('#dropzone').dropzone( {
parallelUploads: 1,
uploadMultiple: true,
autoProcessQueue: true
});