我正在尝试从服务器下载文件,我收到访问被拒绝错误,路径与我提供的输入不同,如何传递正确的路径
protected void Page_Load(object sender, EventArgs e)
{
string FileLoc = @"~/Upload/1984_Apple_Macintosh_Commercial.mp4";
DownloadData(FileLoc);
}
public void DownloadData(string address)
{
var path = Path.Combine(Request.PhysicalApplicationPath, address);
using (var client = new WebClient())
{
client.DownloadFile(path, "1984_Apple_Macintosh_Commercial.mp4");
}
}
访问路径'C:\ Program Files(x86)\ Common Files \ Microsoft 共享\ DevServer \ 10.0 \ 1984_Apple_Macintosh_Commercial.mp4'被拒绝。
更新代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string FileLoc = @"c:\Files\1984_Apple_Macintosh_Commercial.mp4";
DownloadData(FileLoc);
}
}
public void DownloadData(string address)
{
var path = Path.Combine(Request.PhysicalApplicationPath, address);
WebClient Client = new WebClient();
Client.DownloadFile(path, @"c:\Files\1984_Apple_Macintosh_Commercial.mp4");
}
答案 0 :(得分:0)
client.DownloadFile()
中的第二个参数表明该文件实际上位于错误中指定的文件夹中。我想您使用的是Windows 7,并且开发环境(Visual Studio?)没有以管理员权限启动,因此您无法保存在该文件夹中。
作为第二个参数,请将路径更改为硬盘驱动器上的绝对路径,您无需管理员权限即可访问。
示例:
client.DownloadFile(path, "c:\files\1984_Apple_Macintosh_Commercial.mp4")
暗示c:\files
存在。
答案 1 :(得分:0)
看起来你在这里有些困惑。 WebClient
用于从服务器下载文件。您似乎在服务器端代码中使用它来从同一服务器“下载”文件;这没有意义。
如果您想编写代码以将文件从您的网站发送到客户端(浏览器),可以通过不同的方式实现此目的,例如: Response.TransmitFile方法(参见样本here)