将二进制保存为文件

时间:2011-11-30 18:56:44

标签: c# asp.net-mvc file-upload http-post

如何将二进制字符串保存为文件?我从Excel发布二进制字符串。这是代码:

Sub PostFileAsBinary()

Dim Filename  As String
Filename = "\\Network Drive\Test File\TestFile.pdf"
FileURL = "http://localhost:11212/Upload/BinaryFile/"

Dim ReadFile As String
Dim n As Integer
n = FreeFile()

Open Filename For Binary As n
ReadFile = String(LOF(n), vbNullChar)
Get n, , ReadFile
Close n
Debug.Print ReadFile

Set httpReq = New MSXML2.XMLHTTP
httpReq.Open "POST", FileURL & "?ID= " & 2, False
httpReq.SetRequestHeader "Content-Length", Len(ReadFile)
httpReq.send ReadFile

Debug.Print httpReq.responseText
ReadFile = ""
Set httpReq = Nothing

End Sub

这是我的控制器动作:

        [HttpPost]
    public ActionResult PostLPFile(int LPKey, string ReadFile)

    {
        using (FileStream srReadFile = new FileStream(@"D:\Temp", FileMode.Create))

        {
            using (BinaryWriter writer = new BinaryWriter(srReadFile))
            {
                writer.Write(ReadFile);

                writer.Close();
            }
        }
        return View();

我成功发布了二进制文件,但无法在上述位置上传文件:\\Network Drive\Posted File

我想我必须转换发布到流的二进制字符串,我认为我正在努力。任何人都可以调查并帮助吗?

1 个答案:

答案 0 :(得分:3)

访问ASP.Net中的目录位置的安全性取决于Web应用程序中的安全性实现方式:

如果您模仿最终用户或特定用户,那么该用户需要有权访问目录位置。

如果您没有使用模拟,那么运行您的网站的应用程序池的用户标识将需要访问该目录。

<强>更新

有关ASP.Net中模拟的含义的更多信息,请参阅this MSDN article