【问题标题】:Uploading files by dropzone.js give error, Request format is invalid: multipart/form-data;通过dropzone.js上传文件报错,请求格式无效:multipart/form-data;
【发布时间】:2014-05-28 06:12:31
【问题描述】:

我正在使用 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 服务上的讨厌错误....

期待任何想法和/或建议,

谢谢

【问题讨论】:

    标签: c# web-services wcf web dropzone.js


    【解决方案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
            });
    

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 1970-01-01
      • 2018-05-13
      • 2017-08-12
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-06
      相关资源
      最近更新 更多