我想從服務器上下載文件,我得到訪問被拒絕的錯誤,路徑與我給的輸入不同,我怎麼能通過正確的路徑如何從服務器下載文件,使用asp.net網站
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文件\微軟 共享\ 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");
}
Tilde擴展不是語言功能。您需要將其更改爲您的實際主目錄。 –
@Chris不正確,請參閱http://msdn.microsoft.com/en-us/library/system.web.virtualpathutility.combine.aspx, 具體說明:'Combine方法使用AppDomainAppVirtualPath屬性值而非基本路徑,如果相對路徑以波浪號和斜線標記(〜/)開頭;否則,Combine方法使用基本路徑。「 – sinni800
我站好了,謝謝@sinni800。 –