gpt4 book ai didi

c# - 如何将文件链接到网站之外

转载 作者:行者123 更新时间:2023-11-30 18:04:50 25 4
gpt4 key购买 nike

我们的应用服务器有一个文件夹用来存放客户上传的附件。这个文件夹叫做 Attachments,它在网站之外,没有这个文件夹的虚拟目录。我想知道如何链接这个文件夹的文件。我的代码是:

string vetting = "c:\\Attachments";
if (Directory.Exists(vetting +"\\"+ "UserName"))
{

DirectoryInfo di = new DirectoryInfo(vetting+"\\" + "UserName");
FileInfo[] rgFiles = di.GetFiles("*.*");
if (rgFiles.Length > 0)//thumb.db will be a file
{//list is a div on front end.
list.InnerHtml += <span class='SubTitle'>Your attachments list:</span>";
foreach (FileInfo fi in rgFiles)
{
list.InnerHtml += "<br><a href='c:/Attachments/UserName/"+fi.Name+"'>"+fi.Name+"</a>" ;
}
}
else
{
list.InnerHtml += "You don't have any attachment yet.";
}
}

但是不行,总是去找客户端c:/Attachments。我如何链接到服务器端 c:/Attachments?提前谢谢你。

最佳答案

如果这些文件未暴露给 IIS(您的 Web 服务器),则您无法链接到这些文件。

建议考虑 2 个选项:

  • 创建一个 .ashx(ASP.NET 网络处理程序)来处理这些请求。它会按照您认为合适的方式读取请求的文档(来自 session 、cookie 或查询字符串)。你的.InnerHtml可以是<a href='mysite.com/bar.ashx?file=foo'>foo.xlsx</a> .然后,您可以实现授权检查、文件名混淆等等。读取所需文件的字节,返回给客户端。

  • 在您的 IIS 站点/应用程序下创建一个虚拟目录。将此 vdir 称为“附件”。 警告:这允许任何人使用/构建/使用任何链接来查看任何附件。考虑禁用目录浏览。确保相应的 IIS 用户具有查看此目录的 NTFS 权限。如果安全不是问题/要求,请实现此操作。你的.InnerHtml然后可以是<a href='mysite.com/attachments/foo.xlsx'>foo.xlsx</a>

关于c# - 如何将文件链接到网站之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6020046/

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