如何将文件从网络服务器下载到桌面

本文关键字:服务器 下载 桌面 网络服务 网络 文件 | 更新日期: 2023-09-27 18:24:15

我已经在互联网上搜索了3个小时,寻找解决我问题的方法,我开始怀疑是否有其他人遇到过这个问题?

我正在使用IIS7来托管一个网站,该网站在我们的办公室周围做一些当地的事情。好吧,开发这个网站一切都很好,但现在我正在主持这个网站,我不能(其他人也不能)点击链接下载所需的文件。(让我们假装他们点击链接从网络服务器下载一些随机文件)

嗯,它下载文件失败了,我可以猜测这是一个权限错误。我一直在寻找解决方案,但似乎找不到。我对IIS7知之甚少,所以我对应用程序池标识的内容了解不多,尽管我确实设法授予了该标识对文件/文件夹的完全访问权限。不管怎样,这是它正在搞砸的特定区域。

这是default.cshtml页面的一部分,它从.cs文件中调用函数://嗯。。非常接近确切的事情,刚刚摆脱了一堆不必要的垃圾

@{
string tmp = Functions.downloadFile(fileName)
}
<html>
tmp
</html>

这是.cs文件中实际将文件下载到桌面的部分

public static string downloadFile(string fileName) //i know this example doesnt 
//use filename, but the original code does.
{
    if (Directory.Exists("C:'WebSite'thingsToDownload"))
    {
        string[] files = Directory.GetFiles("C:'WebSite'thingsToDownload");
        foreach (string s in files)
        {
            string[] tmp = s.Split('''');
            try
            {
                File.Copy(s,
                          Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
                          + "''" + tmp[tmp.Length - 1]);
            }
            catch (Exception e)
            {
                return "ERROR COPYING: " + e.Message;
            }
        }
        return "GOOD";
    }
    return "DIRECTORY DOESNT EXIST";
}

说了这么多,做了这么多之后,我得到"错误复制:访问路径'''fileName'被拒绝。

我的猜测是,网络服务器无法访问此人的桌面以便将文件放在那里。如果有人能提供一些线索并帮助我获得这一点,我将不胜感激!

如何将文件从网络服务器下载到桌面

如果您想通过单击链接下载文件,您应该使用response。

例如,当用户单击链接或按钮时,可以使用以下示例:

  const string fName = @"C:'picture.bmp";
  FileInfo fi = new FileInfo(fName);
  long sz = fi.Length;
  Response.ClearContent();
  Response.ContentType = Path.GetExtension(fName);
  Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}",System.IO.Path.GetFileName(fName)));
  Response.AddHeader("Content-Length", sz.ToString("F0"));
  Response.TransmitFile(fName);
  Response.End();

当您开发它时,它就起作用了,因为它在您的计算机上运行,因此可以访问您的桌面。没有下载到桌面这样的东西。您可以提供文件,并让用户决定将文件保存在哪里;在桌面或其他地方。但是,您必须通过http来执行此操作,而不是直接从服务器执行此操作。