我在服务器上制作了像这样的csv:
string Expath = @"d:\A.csv";
protected void Button3_Click(object sender, EventArgs e)
{
FileStream FS = null;
StreamWriter SW = null;
try
{
FS = new FileStream(Expath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
SW = new StreamWriter(FS, Encoding.Default);
SW.WriteLine("Test");
SW.WriteLine("1,2,3,4,5");
}
catch { }
finally
{
if (SW != null)
{
SW.Close();
FS.Close();
}
}
}
在服务器上的d:
上创建此文件是否正确?如果不是在哪里放置下摆更好?
如何在客户端完成后下载此文件? (asp.net C#)
答案 0 :(得分:6)
您可以使用此代码将文件推送到浏览器。
private void PushToBrowser(string FilePath, byte[] Data)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.BufferOutput = true;
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ContentType = @"application/csv";
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(FilePath));
HttpContext.Current.Response.OutputStream.Write(Data, 0, Data.Length);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
File.Delete(FilePath);
}
您可以使用以下代码将文本数据转换为字节数组
byte[] Data = File.ReadAllBytes(FilePath)
我不建议将生成的文件保留在Web目录之外,即使它可以通过impersonation写入ASP.NET中Web根目录之外的目录,但在生产环境中根本不建议这样做。
答案 1 :(得分:0)
可能d:\不是一个好地方。如果您在该服务器上运行了Web服务器,则必须查看要在其中发布文件的站点的虚拟目录所在的位置,然后将该文件放在此处。
答案 2 :(得分:0)
当我在服务器上制作文件时,例如我已保存到
的图像Server.MapPath(@"~\" + sFilename)