我正在尝试从ASP.NET网站将.pdf文件上传到虚拟目录PDF_DIR。
现在,我正在上传这样的文件(HttpPostedFile
对象中的myFile):
myFile.SaveAs(Server.MapPath("..\PDF_DIR\") & "test.pdf")
暂时可以使用,但是安全策略将更改,将来我将无法使用Server.MapPath
(因为它返回目录的物理路径,并且网站用户将没有写权限)就可以了。
因此,我想直接写入虚拟目录,该虚拟目录由可以在上面写入的超级用户链接到物理路径。
这是我针对我的测试:
1-FileStream.FileOpen(virtualPath)
Dim b As Byte()
Using br As New BinaryReader(myFile.InputStream)
b = br.ReadBytes(myFile.ContentLength) // Convert Stream to Byte()
End Using
Dim fs As FileStream = File.Open("..\PDF_DIR\" & "test.pdf", FileMode.Create, FileAccess.ReadWrite)
fs.Write(b, 0, b.Length)
fs.Close()
错误:无法找到路径C:\ windows \ system32 \ PDF_DIR \ test.pdf的一部分
2-FileStream.FileOpen(server / virtualPath)
从1开始使用"http://server/PDF_DIR/"
代替"..\PDF_DIR\"
错误:FileOpen不支持URI
3-具有虚拟路径URI的WebClient
Dim wc As System.Net.WebClient = New System.Net.WebClient()
wc.UploadFile(New URI("http://server/PDF_DIR/test.pdf"), ???)
这个,我不知道在示例中第二个参数要传递什么,但是用"blank.pdf"
而不是???
出现错误远程服务器返回错误:401未经授权,即使网站用户拥有目录的写权限...
有人知道这是否可行吗?如何实现?
感谢您的帮助,
此致
CLJ