Вы можете попытаться обработать созданный вами файл следующим образом: htmlCode.ToString ():
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
Другой метод - сохранить файл и прочитать его какмассив байтов и обслуживайте его так:
byte[] Content= File.ReadAllBytes(FilePath); //missing ;
Response.ContentType = "text/csv";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".csv");
Response.BufferOutput = true;
Response.OutputStream.Write(Content, 0, Content.Length);
Response.End();
или
string filename="Connectivity.doc";
if (filename != "")
{
string path = Server.MapPath(filename);
System.IO.FileInfo file = new System.IO.FileInfo(path);
if (file.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
}
else
{
Response.Write("This file does not exist.");
}
}
В противном случае
После сохранения файла Word / PDF вНа сервере по некоторому временному пути вы можете использовать HTTP-обработчик (.ashx) для загрузки файла, например:
ExamplePage.ashx:
public class DownloadFile : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.AddHeader("Content-Disposition",
"attachment; filename=" + fileName + ";");
response.TransmitFile(Server.MapPath("FileDownload.csv"));
response.Flush();
response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
Затем вы можете вызвать обработчик HTTPиз обработчика событий нажатия кнопки, например:
Разметка:
<asp:Button ID="btnDownload" runat="server" Text="Download File"
OnClick="btnDownload_Click"/>
Код сзади:
protected void btnDownload_Click(object sender, EventArgs e)
{
Response.Redirect("PathToHttpHandler/DownloadFile.ashx");
}
Передача параметра в обработчик HTTP:
Вы можете просто добавить переменную строки запроса в Response.Redirect (), например:
Response.Redirect("PathToHttpHandler/DownloadFile.ashx?yourVariable=yourValue");
Затем в фактическом коде обработчика вы можете использовать объект Request в HttpContext, чтобы получитьЗначение переменной строки запроса, например:
System.Web.HttpRequest request = System.Web.HttpContext.Current.Request;
string yourVariableValue = request.QueryString["yourVariable"];
// Use the yourVariableValue here
Примечание. Обычно имя файла передается в качестве параметра строки запроса.предложите пользователю, что это за файл на самом деле, и в этом случае они могут переопределить это имя с помощью кнопки Сохранить как ...