我正在使用 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 并通过 jQuery 直接发布它并避免我在 web 服务上出现令人讨厌的错误....
期待任何想法和/或建议,
谢谢
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
});
我是一名优秀的程序员,十分优秀!