我看了看周圍的互聯網3小時,現在尋找解決我的問題,我開始懷疑是否有其他人有過這個確切的問題?如何從我的網絡服務器下載文件到我的桌面?
我使用IIS7來託管一個網站,在我們的辦公室周圍做一些本地的事情。那麼,開發網站的一切工作正常,但現在我主持的網站我不能(也沒有其他人可以)點擊鏈接下載所需的文件。 (讓我們假裝他們點擊一個鏈接,從網絡服務器上下載一些隨機文件)
嗯,它無法下載文件,我可以猜測是一個權限錯誤。我尋找一個解決方案,但似乎無法找到一個。我對IIS7知之甚少,所以我不太瞭解應用程序池標識的內容,儘管我確實設法授予對該文件/文件夾的完全訪問權限。無論如何,這裏是它搞亂的具體區域..
這是一個default.cshtml頁面,從一個.cs文件調用一個函數: //好..很接近確切的東西,剛剛擺脫了一堆不必要的垃圾的
@{
string tmp = Functions.downloadFile(fileName)
}
<html>
tmp
</html>
這是實際將該文件下載到桌面
public static string downloadFile(string fileName) //i know this example doesnt
//use filename, but the original code does.
{
if (Directory.Exists("C:\WebSite\thingsToDownload"))
{
string[] files = Directory.GetFiles("C:\WebSite\thingsToDownload");
foreach (string s in files)
{
string[] tmp = s.Split('\\');
try
{
File.Copy(s,
Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
+ "\\" + tmp[tmp.Length - 1]);
}
catch (Exception e)
{
return "ERROR COPYING: " + e.Message;
}
}
return "GOOD";
}
return "DIRECTORY DOESNT EXIST";
}
之後是所有說的和做的cs文件的一部分,我得到「錯誤複製:訪問路徑'\ fileName'被拒絕
我的猜測是,網絡服務器無法訪問該用戶的桌面以便將文件放到那裏。 如果任何人可以擺脫一些光線,並幫助我得到這個,將不勝感激!
你試圖寫入文件到服務器的桌面(或其他地方'fileName'可能指向除此以外)。使用[Response.WriteFile](http://msdn.microsoft.com/en-us/library/dyfzssz9.aspx)。 – 2012-02-13 19:34:45
這段代碼是否應該允許用戶下載任何內容?似乎有一個文件正在服務器上的兩個文件夾之間複製。這個問題可能源自這樣一個事實,即Environment.GetFolderPath爲LocalSystem返回一個空路徑(或者你的池運行的任何用戶),但這並不能改變整個方法看起來不對的事實。 – 2012-02-13 19:36:31