使用 jQuery 上传文件插件时出错,将不需要的字符串附加到文件 (WebKitFormBoundary)

Posted

技术标签:

【中文标题】使用 jQuery 上传文件插件时出错,将不需要的字符串附加到文件 (WebKitFormBoundary)【英文标题】:Error using jQuery Upload File Plugin, unwanted strings appended to files (WebKitFormBoundary) 【发布时间】:2014-07-04 17:56:42 【问题描述】:

我正在使用这个插件:http://hayageek.com/docs/jquery-upload-file.php

我用它将文件发送到 WCF Rest 服务并将其保存在硬盘上。

上传工作正常,但问题是图像、exe 等。上传损坏。 如果我用文本编辑器打开上传的文件,我会看到不需要的字符串

开始:

------WebKitFormBoundaryPUTfurckDMbpBxiw Content-Disposition: form-data;名称=“文件”; filename="image.png" 内容类型:image/png

结束:

------WebKitFormBoundaryPUTfurckDMbpBxiw--

我的服务代码:

<OperationContract()>
<WebInvoke(ResponseFormat:=WebMessageFormat.Json, Method:="POST", UriTemplate:="GetFile?fileName=fileName&accion=accion")>
Function GetFile(str As Stream, fileName As String, accion As String) As String
    Try            
        Dim absFileName As String = "C:\inetpub\wwwroot\UploadedComponents\" & fileName
        Using fs As New FileStream(absFileName, FileMode.Create)
            str.CopyTo(fs)
            str.Close()
        End Using
        Return "Upload OK"
    Catch ex As Exception
        Throw ex
    End Try
End Function 

有什么办法解决这个问题吗?

【问题讨论】:

【参考方案1】:

终于在这里找到了答案:

Reading file input from a multipart/form-data POST

我需要从Multipart Parser这里导入一个组件。

然后将上传的文件保存在服务端:

public void Upload(Stream stream)

    string filepath = "some path with filename and extension"; // corrected filepath mistyping

    MultipartParser parser = new MultipartParser(stream);
    if (parser.Success)
    
        // Save the file
        File.WriteAllBytes(filepath, parser.FileContents)
    

【讨论】:

以上是关于使用 jQuery 上传文件插件时出错,将不需要的字符串附加到文件 (WebKitFormBoundary)的主要内容,如果未能解决你的问题,请参考以下文章

文件上传利器JQuery上传插件Uploadify

使用webuploader插件上传图片时如果正确 限制上传数量

jquery文件上传插件大文件问题

使用jquery的ajaxfileupload.js和struts2无刷新上传文件出错

jQuery File Upload文件上传插件简单使用

使用webuploader插件上传图片时如果正确 限制上传数量