6

我一直在互联网上搜索,但找不到任何有用的答案。

我有一个 ASP.NET 网站,它部署在服务器上。服务器上的 ASP.NET 网站可以访问名为 W:/ 的目录。公司的客户可以访问该网站。该网站在 ListBox 中列出了 W:/ 目录中的所有 PDF 文件。客户端应该能够从列表框中选择 PDF 文件,并通过为其选择位置将它们保存到本地 PC。

诸如在网页上另存为文件之类的东西。

你能为我提供一些解决方案或解决方法吗?

4

5 回答 5

5

最后我找到了一篇文章,提示保存对话框以从 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();
于 2012-10-11T07:34:34.160 回答
2

这是 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();


        }
于 2016-04-14T13:40:12.177 回答
0

从 W 盘获取 byte[] 中的文件内容并将其写入本地文件。

byte[] data = File.ReadAllBytes(WDriveFilePath)

FileStream file = File.Create(HttpContext.Current.Server.MapPath(MyLocalFile)); 

file.Write(data, 0, data.Length); 
 file.Close(); 
于 2012-10-11T07:16:56.043 回答
0

我做了这样的事情来获取文件。

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();
                }
            }
        }
于 2014-09-26T12:13:12.317 回答
0

正确的关键字是“文件浏览器 asp.net”,可以找到很多带有源代码的示例。

这是来自codeproject的一个:

http://www.codeproject.com/Articles/301328/ASP-NETUser-Control-File-Browser

于 2012-10-11T06:32:58.800 回答