怎么通过按钮下载自己web项目里的某个文件

核心提示你的这种想发挺不错的,但是我认为forword不会说是这样的一个作用。它是负责转发请求,而不是处理流的,虽然是有流的一个作用,但是机制应当是将文件处理后放到一个流中传到前台。那么所设置的若干response应当是无效的,会呗祛除掉。所以下载

你的这种想发挺不错的,但是我认为forword不会说是这样的一个作用。它是负责转发请求,而不是处理流的,虽然是有流的一个作用,但是机制应当是将文件处理后放到一个流中传到前台。那么所设置的若干response应当是无效的,会呗祛除掉。所以下载还是看下面代码,规规矩矩的使用IO流

<%@page contentType="text/html"%>

<%@page pageEncoding="UTF-8"%>

<%@page import="java.text.*, java.io.*, com.stxdalian.mro.util.*" %>

<%

out.clear();

out = pageContext.pushBody();

request.setCharacterEncoding("UTF-8");

String fname = java.net.URLDecoder.decode(request.getParameter("fn"),"utf-8");

String oname = java.net.URLDecoder.decode(request.getParameter("on"),"utf-8");

String upDir ="";

String dname = upDir + fname;

File fp = new File(dname);

String fsize = String.valueOf(fp.length());

byte b[] = new byte[Integer.parseInt(fsize)];

response.setHeader("Content-type","application/unknowon");

response.setHeader("Content-Disposition","attachment; filename="" + java.net.URLEncoder.encode(oname, "UTF-8") +""");

response.setHeader("Content-Length",fsize+";");

response.setHeader("Content-Transfer-Encoding","binary");

response.setHeader("Pragma","no-cache");

response.setHeader("Expires","0");

if(fp.isFile()){

BufferedInputStream fin = new BufferedInputStream(new FileInputStream(fp));

BufferedOutputStream fon = new BufferedOutputStream(response.getOutputStream());

int read = 0;

try{

while((read = fin.read(b)) != -1){

fon.write(b,0,read );

}

}catch(Exception ex){

ex.printStackTrace();

}finally{

if(fon!=null)

fon.close();

if(fin!=null)

fin.close();

}

}

%>

Web迅雷下载速度的影响因素为以下几点:

1.该文件本身的资源少,该文件所处服务器性能不是很卓越。

2.您可以换一种下载软件。例如:IDM是个人认为非常卓越的

3.和您宽带带宽及系统自身原因决定。例如ADSL

1M的宽带一般下载速度为100-110K/s

4.您可以尝试换一个下载地方

2.页面设置方法:

1。右键“我的电脑“

2。属性

3。高级-性能选项-高级

4。在虚拟内存栏-更改

5.根据自身需要修改虚拟内存

 
友情链接
鄂ICP备19019357号-22