我一直在互联网上搜索,但找不到任何有用的答案。
我有一个 ASP.NET 网站,它部署在服务器上。服务器上的 ASP.NET 网站可以访问名为 W:/ 的目录。公司的客户可以访问该网站。该网站在 ListBox 中列出了 W:/ 目录中的所有 PDF 文件。客户端应该能够从列表框中选择 PDF 文件,并通过为其选择位置将它们保存到本地 PC。
诸如在网页上另存为文件之类的东西。
你能为我提供一些解决方案或解决方法吗?
我一直在互联网上搜索,但找不到任何有用的答案。
我有一个 ASP.NET 网站,它部署在服务器上。服务器上的 ASP.NET 网站可以访问名为 W:/ 的目录。公司的客户可以访问该网站。该网站在 ListBox 中列出了 W:/ 目录中的所有 PDF 文件。客户端应该能够从列表框中选择 PDF 文件,并通过为其选择位置将它们保存到本地 PC。
诸如在网页上另存为文件之类的东西。
你能为我提供一些解决方案或解决方法吗?
最后我找到了一篇文章,提示保存对话框以从 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();
这是 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();
}
从 W 盘获取 byte[] 中的文件内容并将其写入本地文件。
byte[] data = File.ReadAllBytes(WDriveFilePath)
FileStream file = File.Create(HttpContext.Current.Server.MapPath(MyLocalFile));
file.Write(data, 0, data.Length);
file.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();
}
}
}
正确的关键字是“文件浏览器 asp.net”,可以找到很多带有源代码的示例。
这是来自codeproject的一个:
http://www.codeproject.com/Articles/301328/ASP-NETUser-Control-File-Browser