C# “保存”对话框下载文件,将文件从ASP.NET服务器保存到客户端
我一直在网上搜索,但找不到任何有用的答案 我有一个ASP.NET网站,它部署在服务器上。 服务器上的ASP.NET网站可以访问名为W:/的目录。 公司的客户可以访问该网站。网站在列表框中列出了W:/目录中的所有PDF文件。客户端应该能够从列表框中选择PDF文件,并通过选择位置将其保存到本地PC 类似于网页上的另存为文件 你能为我提供一些解决方案或解决方法吗?正确的关键字是“文件浏览器asp.net”,以查找大量源代码示例 以下是codeproject中的一个: 正确的关键字是“文件浏览器asp.net”,以查找大量源代码示例 以下是codeproject中的一个:C# “保存”对话框下载文件,将文件从ASP.NET服务器保存到客户端,c#,asp.net,save,save-dialog,C#,Asp.net,Save,Save Dialog,我一直在网上搜索,但找不到任何有用的答案 我有一个ASP.NET网站,它部署在服务器上。 服务器上的ASP.NET网站可以访问名为W:/的目录。 公司的客户可以访问该网站。网站在列表框中列出了W:/目录中的所有PDF文件。客户端应该能够从列表框中选择PDF文件,并通过选择位置将其保存到本地PC 类似于网页上的另存为文件 你能为我提供一些解决方案或解决方法吗?正确的关键字是“文件浏览器asp.net”,以查找大量源代码示例 以下是codeproject中的一个: 正确的关键字是“文件浏览器asp.
从W驱动器获取字节[]中的文件内容,并将其写入本地文件
byte[] data = File.ReadAllBytes(WDriveFilePath)
FileStream file = File.Create(HttpContext.Current.Server.MapPath(MyLocalFile));
file.Write(data, 0, data.Length);
file.Close();
从W驱动器获取字节[]中的文件内容,并将其写入本地文件
byte[] data = File.ReadAllBytes(WDriveFilePath)
FileStream file = File.Create(HttpContext.Current.Server.MapPath(MyLocalFile));
file.Write(data, 0, data.Length);
file.Close();
最后我找到了一篇文章,它提示保存对话框从ASP.NET下载文件 我把它贴在这里,也许可以帮助别人,节省一些时间
String FileName = "FileName.txt";
String FilePath = "C:/...."; //Replace this
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(FilePath);
response.Flush();
response.End();
最后我找到了一篇文章,它提示保存对话框从ASP.NET下载文件 我把它贴在这里,也许可以帮助别人,节省一些时间
String FileName = "FileName.txt";
String FilePath = "C:/...."; //Replace this
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(FilePath);
response.Flush();
response.End();
我做了类似的事情来获取文件
protected void btnExportFile_Click(object sender, EventArgs e)
{
try
{
Thread newThread = new Thread(new ThreadStart(ThreadMethod));
newThread.SetApartmentState(ApartmentState.STA);
newThread.Start();
// try using threads as you will get a Current thread must be set to single thread apartment (STA) mode before OLE Exception .
}
catch (Exception ex)
{
}
}
static void ThreadMethod()
{
Stream myStream;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = saveFileDialog1.OpenFile()) != null)
{
// Code to write the stream goes here.
myStream.Close();
}
}
}
我做了类似的事情来获取文件
protected void btnExportFile_Click(object sender, EventArgs e)
{
try
{
Thread newThread = new Thread(new ThreadStart(ThreadMethod));
newThread.SetApartmentState(ApartmentState.STA);
newThread.Start();
// try using threads as you will get a Current thread must be set to single thread apartment (STA) mode before OLE Exception .
}
catch (Exception ex)
{
}
}
static void ThreadMethod()
{
Stream myStream;
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = saveFileDialog1.OpenFile()) != null)
{
// Code to write the stream goes here.
myStream.Close();
}
}
}
这是user1734609解决方案的扩展,该解决方案在本地获取文件 要将文件从服务器下载到客户端,请执行以下操作:
public void DownloadFile()
{
String FileName = "201604112318571964-sample2.txt";
String FilePath = AppDomain.CurrentDomain.BaseDirectory + "/App_Data/Uploads/" + FileName;
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(FilePath);
response.Flush();
response.End();
}
这是user1734609解决方案的扩展,该解决方案在本地获取文件 要将文件从服务器下载到客户端,请执行以下操作:
public void DownloadFile()
{
String FileName = "201604112318571964-sample2.txt";
String FilePath = AppDomain.CurrentDomain.BaseDirectory + "/App_Data/Uploads/" + FileName;
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(FilePath);
response.Flush();
response.End();
}
@user1734609这就是你要找的吗?:)我读完了这篇文章,但不完全是:)我的列表框中有PDF文件名。来自W:/directory的文件位于不同的服务器上,但位于域内。列表框列出了该目录的所有文件名。公司内部的客户在打开网站时可以从目录中获取PDF文件列表。然后选择一个或多个并单击另存为。并且应该能够在自己的电脑上保存:)你明白这一点吗?:)@是的,我明白。从该代码开始,在选择要向浏览器显示的文件时,从包含所有域的表中进行选择。我不知道如何设置,可能是共享目录,可能是ftp读取,可能是克隆…@user1734609这就是你要找的吗?:)我读完了这篇文章,但不完全是:)我的列表框中有PDF文件名。来自W:/directory的文件位于不同的服务器上,但位于域内。列表框列出了该目录的所有文件名。公司内部的客户在打开网站时可以从目录中获取PDF文件列表。然后选择一个或多个并单击另存为。并且应该能够在自己的电脑上保存:)你明白这一点吗?:)@是的,我明白。从该代码开始,在选择要向浏览器显示的文件时,从包含所有域的表中进行选择。我不知道如何设置,可能是共享目录,可能是ftp读取,可能是克隆…感谢Cory Mathews的文章。下载.zip文件是否有效?应该使用什么内容类型?感谢Cory Mathews的文章。下载.zip文件是否有效?应该使用什么内容类型?这不提供保存对话。这不提供保存对话。