当前位置: 首页 > 编程语言 > C#

为文件服务器上的文件创建下载链接分享

时间:2023-04-11 01:14:13 C#

为文件服务器上的文件创建下载链接单独文件服务器上的文件。情况是这样的:我正在开发的应用程序(vb.net中的asp.net2.0,但我在c#中有类似的问题,无论哪个解决方案对我有用)将在公司内部运行。按照良好做法,文件存储和Web应用程序位于两个独立的服务器上。我基本上需要能够创建一个文件的下载链接,我必须访问该文件的唯一可用URL是servernamefolder1folder2folder3file.txt(可以是任何类型的文件)网络链接根本不起作用。这是它当前的设置方式:tablerowfield.Text=String.Format("Clickme",filename)由于显而易见的原因,这不起作用。它曾经被设置为将该文件写入应用程序路径本身并且工作得很好,但这不是好的做法,这就是我更改它(或尝试过)的原因。我阅读了有关创建下载页面的解决方案,然后在数据库中有一个包含链接并返回适当的WebURL以供下载的表,但不幸的是,我面临的时间限制不允许我开发它。假设我可以像上面那样为文件提供包含完整文件路径的字符串,那么创建链接的最简单方法是什么?单击时,下载文件?注意:我在此环境中拥有0管理员权限。那真的对我没有帮助。假设我得到了上面的正确链接,并且有适当的文件访问权限等。更新:上面的例子在IE中有效,但在Firefox和Chrome中无效。IE将其转换为file://servername/...链接,这会按照预期进行,但FF和Chrome都主动确定这是不安全的,并已从浏览器中禁用它。您可以使用ASHX文件(例如,https://stackoverflow.com/questions/7725599/creating-download-link-to-a-file-on-a-file-server/downloadfile.ashx)并使用以下内容代码(未测试,但会类似):Response.Clear();Response.ContentType="application/octet-stream";Response.AddHeader("Content-Disposition","attachment;filename=abc.txt");Response.WriteFile(Server.MapPath("\servernamefolder1folder2folder3abc.txt"));响应.End();然后在你的锚标签中这样使用:Clickme注意:你也可以传递参数来下载不同的文件,例如:Clickme然后,在ashx文件中,使用文件名下载相应的文件。此代码将在下载文件夹中创建一个名为=hi.txt且内容为“谢天谢地,文件终于下载完毕”的文件。Response.Clear();Response.ContentType="application/octet-stream";Response.AddHeader("Content-Disposition","attachment;filename=hi.txt");Response.Write("谢天谢地,文件终于下载好了。");响应.End();如果您的文件已存在于服务器上,那么您可以在下载按钮单击事件中使用此代码voiddownloadpdf_Click(objectsender,EventArgse){Response.Clear();Response.ContentType="application/octet-stream";Response.AddHeader("Content-Disposition","attachment;filename=""downloadName.pdf""");Response.WriteFile(Server.MapPath(@"~/pdf/actualfile.pdf的路径"));响应.End();}\servernamefolder1folder2folder3...是在浏览器中不起作用的UNC路径。由于该文件位于单独的服务器上,因此需要格式为http://server-name/folder1/folder2/file.txt的href属性。如果客户端无法解析服务器名称,需要先获取服务器的IP地址,然后制定形式的href:http://10.1.1.30/folder1/folder2/file.txt:http://10.1.1.30/folder1/folder2/file.txt以下是从server-name获取IP地址的方法:IPAddress[]host;host=Dns.GetHostAddresses("服务器名");字符串ip=主机[0].ToString();编辑:我基本上你需要能够为文件创建下载链接。使用ashx解决方案,您的应用程序将从服务器读取文件并将其中继到客户端,而不是仅向客户端提供直接从文件服务器下载文件的链接。以上就是C#学习教程:在文件服务器上创建一个文件的下载链接,分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: