【发布时间】:2011-11-30 18:56:43
【问题描述】:
如何将二进制字符串保存为文件?我正在从 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
我想我必须将发布的二进制字符串转换为流,我想我正在努力解决这个问题。有人可以调查一下并提供帮助吗?
【问题讨论】:
-
@user793468,你试过在本地写吗?在 UNC 地址之前先尝试一下,并确保 IIS 向其他域输出写入不是问题。 (@squillman,我的错)
-
@one 其实不是我的问题,我只是整理了一下。
-
@one.beat.consumer 我在本地有:FileURL = "localhost:11212/Upload/BinaryFile"
-
@user793468,“但无法上传”没有用。请提供详细信息(异常类型+消息)。还可以尝试在本地保存(如建议的那样),即保存到临时文件夹以避免所有权限问题。
-
@AlexeiLevenkov 我将其更改为“D:\Temp”并得到错误:访问路径“D:\Temp”被拒绝。我确实有权访问该文件夹,为什么会出现此错误?
标签: c# asp.net-mvc file-upload http-post