一个很简单的问题,可我就是想不通……

doctorzw 2004-10-26 09:44:11
书本上有实现文件下载的例子
实现方法是,通过流读取文件,然后通过流写入客户端,这样实现文件的下载。

可我就是想不通,我试了一下,如果我在jsp页面中设置一个超级连接,然后将这个超级连接指向计算机中的一个文件(例如一个.zip文件),然后我只要打开这个jsp,然后直接点该超级连接就可以实现下载了,这样也可以啊,而且简单,不用写代码。

既然这样也可以实现下载,书本上为什么还要用流来实现下载呢???

很困惑……

...全文
145 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinannanhai79 2004-10-28
用流读取文件方法是当用户点击该连接时,服务器强制用户进行下载操作;而你所说的直接链接到文件的方法,在某些浏览器中,可能被直接在网页中打开了
回复
doctorzw 2004-10-26
To: LDH202(玲海)

谢谢你哦
回复
LDH202 2004-10-26
漏了文件的长度,文件长度的主要意义是估算下载时间和多线程下载时计算分界点

文件类型说明的另一个好处是,可以直接在浏览器中打开,而不一定非要下载
回复
LDH202 2004-10-26
你要充分的考虑浏览器的问题,不是所有的浏览器都像IE一样功能强大

如果是在FireFox下呢?Linux下呢?

另外,像DOC这种文件就一定是MS Word吗?不见得,呵呵。

MIME-TYPE 是一种好的习惯,就像一般的人事信息里,你贴了自己的照片还是要有性别栏的填写
回复
doctorzw 2004-10-26
还有就是,如果用流实现下载,书本上的例子中说要告诉客户端文件的长度和文件的MIME类型等信息,这有必要吗?比如说一个zip文件,即使我不告诉客户端这个文件的mime类型,只要把文件名连同扩展名告诉客户端,客户端应该就可以正确保存和使用了啊,这时还有必要传送mime类型吗?
文件长度也是一样的,即使我不把文件的长度传送到客户端,客户端只要下载完毕以后也就自然知道了文件的大小,这个应该也没有必要啊


这是为什么

回复
LDH202 2004-10-26
正确,使用JSP/Servlet的话,你的控制性就大大增强,你甚至可以控制下载的图片上面有水印,声音里面加杂音,文件只能下载一半等等
回复
doctorzw 2004-10-26
TO:LDH202(玲海)

你的意思是说:使用超级连接也可以实现对文件的下载,只是jsp可以完成一些特殊的下载,比如说文件是存放于数据库中的,而不是磁盘中一个实际存在的文件,利用流,可以使用户下载保存在数据库中的一些文件,我的理解对吗?


回复
LDH202 2004-10-26
比如该文件的内容是计算产生的

图片、需要解压缩的信息、存放于数据库中的信息、还有实时报表等、以及不希望让用户随便下载的内容(需要验证身份)
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告