【问题标题】:FineUploader and Mime type (------WebKitFormBoundary) appended into filesFineUploader 和 Mime 类型(------WebKitFormBoundary)附加到文件中
【发布时间】:2014-11-24 09:06:51
【问题描述】:

如何解决使用FINEUPLOADER工具上传的文件在使用Chrome或Firefox浏览器时附加mime类型的问题? 它发生在二进制文件和文本文件中...... 下面是上传文本文件的示例。

------WebKitFormBoundaryCbkKYQSuaZj8PIIl
Content-Disposition: form-data; name="qqfile"; filename="test.txt"
Content-Type: application/octet-stream

This is the begin of my text file...
...
...
This is the end of my text file...

------WebKitFormBoundaryCbkKYQSuaZj8PIIl--

谢谢!

【问题讨论】:

  • 问题?这就是 HTML 表单的上传方式。如果您的问题是 wrong MIME 类型...您是对的,但它是 Chrome bug,您可以检查文件扩展名和/或内容服务器端(无论如何这是您应该始终做的事情,信任客户端浏览器不是一个安全的假设)。

标签: javascript mime-types fine-uploader


【解决方案1】:

这里没有问题。默认情况下,文件以多部分编码请求的形式发送。该文件将被封装在此请求的负载中的多部分边界中,文件的 MIME 类型将在其多部分边界的标头中指定为参数。

不过,您无需担心任何这些,因为现有的每种服务器端语言都有用于解析多部分编码请求的库。如果你使用 PHP,MPE 请求解析实际上是内置在语言中的。

【讨论】:

  • 是的,我知道我必须检查服务器端。我正在调试的是asp.net + Javascript,我会尝试以某种方式解析MIME。幸运的是,Internet Explorer 是免费的。谢谢。
【解决方案2】:

对于那些使用核心选项方式的人,我遇到了同样的问题,但几个小时后发现我需要将 omitDefaultParams 添加到 options.request 对象:

  const uploader = new FineUploader({
    options: {
      request: {
        method: ...,
        endpoint: ...,
        paramsInBody: false,
        forceMultipart: false,
        omitDefaultParams: true,
      },
    },
  });

  ...

  // assuming 'file' is a file in FileList
  uploader.methods.addFiles(file);

我希望这可以为某人节省几个小时。

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 2014-09-17
    • 2012-07-07
    • 1970-01-01
    • 2012-11-02
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多