将文件及其URL上传到虚拟目录

时间:2018-09-05 15:43:14

标签: asp.net iis-6

我正在尝试从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

0 个答案:

没有答案