关于web下载链接的问题?

青瓜蛋子 2017-12-11 11:03:51
最近在搞web,需要用户点击下载文件,通过<a href="/download/test.rar" id="download" >下载</a>的方式倒是可以实现但是会出现个问题,见图:
chrome

360

迅雷

如图所示 ,下载链接被完美显示,但是我却不想显示,着重研究了两天,故请教大家给出点解决办法?

我把我测试过的想法说出来,供大家参考一下:

1.首先我想到的就是加密url,但是转眼一想,加密过的url肯定找不到文件,要是再解密,url不是照样一目了然,岂不是白费功夫,果断放弃。当然也许会有办法,但我确实想不到。

2.采用a标签的download属性<a href="/download/test.rar" id="download" download=“Example.rar”>,但是这只能更改下载文件的名字,url仍是无变化,有技术洁癖的我果断放弃。

3.改变url,采用Zip.js的方法,就可以达到这种效果

正符合我意。果断测试测试...
Zip.js下载地址:http://gildas-lormeau.github.io/zip.js/
在线DEMO:http://gildas-lormeau.github.io/zip.js/demos/demo1.html

PS:测试过程中在本地测试了一整天,总是不行,及其郁闷,最终发现这种方法只能在服务器中测试,本地会报错的,谨记啊。

测试中发现,demo中采用的是<input type="file" onchange=“”>的方法先选择文件,再进行压缩,最后下载,可是我的文件是再服务器中,不需要用户选择,点击后就直接下载。所以我就想到将<input type="file" onchange=“”>隐藏,并自动添加文件,这不就可以了,可惜我发现inputfile的value属性不能赋值。看来必须先读取文件到内存中才行。

3.1:采用FileSystemObject对象的方法读取文件

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.GetFile("c:\\myjstest.txt",true");

可是这种方法只能在ie浏览器中使用,chrome等都不兼容,也只能放弃,终止读取不到文件,这种zip.js方法有点鸡肋啊。

终止我还考虑过提交表单、另存为、清楚记录扥等,都没达到目的。也许是我的方法不对,希望有经验的的给指导指导,怎么才能让用户只能通过点击才可以下载,并且下载地址无法复制使用。


...全文
117 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧