我想从磁盘上的已知位置获取文件,并让ASP从代码隐藏重定向到它们,允许浏览器/应用/设备控制内容的显示方式。
我尝试使用:
Server.Redirect(pathToFile);
但得到以下异常:子请求'C:\ ContentFolder \ testImage.png'的路径无效。预计会有虚拟路径。
如何允许我的网站将用户重定向到这些文件?我将基本目录存储在Web配置中,文件名存储在数据库中。
答案 0 :(得分:2)
如果文件位于您的网站目录之外,则无法重定向到它们。如果可能,请考虑安全隐患。你有几个选择
将文件移动到网站目录(或其子目录)中。然后,可以使用虚拟路径将用户重定向到他们,例如Server.Redirect("~/files/somefile.zip")
。
在IIS中设置一个虚拟目录,该目录映射到磁盘上文件的物理位置。然后,您可以使用虚拟路径重定向到它们。你可以do this through the GUI or config file。
创建一个HttpHandler
,从磁盘加载文件并在响应中返回它们。您可以使用查询字符串来标识要加载的文件,例如/filehandler.ashx?filename=somefile.zip
。快速谷歌透露this example。