1

我正在使用这个插件: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 

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

4

1 回答 1

1

最后我在这里找到了答案:

从 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)
    }
}
于 2014-05-16T18:54:55.747 回答