我在服務器上的某個文件夾中有一個形成的文件。我需要創建一些解決方案,以允許用戶將本地文件保存在計算機上的驅動器上。如何將文件從服務器文件夾保存到本地驅動器/客戶端?
任何人都可以告訴我如何完成,我應該使用什麼控制。
我在服務器上的某個文件夾中有一個形成的文件。我需要創建一些解決方案,以允許用戶將本地文件保存在計算機上的驅動器上。如何將文件從服務器文件夾保存到本地驅動器/客戶端?
任何人都可以告訴我如何完成,我應該使用什麼控制。
這將打開瀏覽器另存爲對話框:
protected void Page_Load(object sender, EventArgs e)
{
FileStream fs = File.OpenRead(Server.MapPath("~/imgName.jpg"));
byte[] buffer = new byte[(int)fs.Length];
fs.Read(buffer, 0, (int)fs.Length);
fs.Close();
SetResponse("imgName");
HttpContext.Current.Response.BinaryWrite(buffer);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
}
private static void SetResponse(string fileName)
{
string attachment = "attachment; filename=" + fileName + ".jpg";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "image/jpeg";
HttpContext.Current.Response.AddHeader("Pragma", "public");
}
嘗試用此權限打開的FileStream:
FileStream fs = new FileStream(Server.MapPath("~/imgName.jpg"), FileMode.Open, FileAccess.Read, FileShare.Read);
正是我需要的。但現在在FileStream上fs = File.OpenRead(Server.MapPath(「〜/ imgName.jpg」));它會返回異常:已經使用的文件!我可以去嗎? – 2012-01-11 10:20:46
如果這不能解決問題,請發佈代碼的上一部分,以便使用該文件。 – zdrsh 2012-01-11 10:53:06
文件NameDB.mdf文件的數據庫。它用於整個項目。我嘗試允許一些用戶複製數據庫文件。 – 2012-01-11 13:18:55
你只需要把你的文件鏈接放在aspx頁面。
<a href="path to your file on server">some text here</a>
當用戶點擊這個鏈接時,他們會得到下載對話框,用它們可以將文件保存到本地系統。
** HTTP://stackoverflow.com/questions/3491174/how-to -save-a-file-generated-in-server-machine-in-clients-machinemydocument ** – 2012-01-11 09:24:09
這不是程序文件保存在客戶端,用戶將啓動該過程中提到的帖子,如果我理解正確。 – MUS 2012-01-11 09:28:30
此文件是否託管在某個虛擬目錄內的IIS服務器上?我希望這個文件不包含重要的信息。 – 2012-01-11 09:29:35