gpt4 book ai didi

c# - 如何从我的网络服务器下载文件到我的桌面?

转载 作者:可可西里 更新时间:2023-11-01 13:16:01 24 4
gpt4 key购买 nike

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

我正在使用 IIS7 托管一个网站,该网站在我们的办公室周围执行一些本地操作。好吧,开发网站一切正常,但现在我正在托管网站,我不能(其他任何人也不能)点击链接下载所需的文件。 (让我们假装他们点击一个链接从网络服务器下载一些随机文件)

好吧,它无法下载文件,据我猜测是权限错误。我一直在寻找解决方案,但似乎找不到。我对 IIS7 知之甚少,所以我不太了解应用程序池标识的东西,尽管我确实设法授予该标识对文件/文件夹的完全访问权限。无论如何,这是它搞砸的特定区域..

这是从 .cs 文件调用函数的 default.cshtml 页面的一部分: //好吧..非常接近确切的东西,只是摆脱了一堆不必要的垃圾

@{
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' 被拒绝。

我的猜测是网络服务器无法访问此人的桌面以将文件放在那里。如果有人可以阐明并帮助我实现这一点,将不胜感激!

最佳答案

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

这是一个示例,您可以在用户单击链接或按钮或其他内容时使用示例:

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

关于c# - 如何从我的网络服务器下载文件到我的桌面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9266709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com