public httpservletresponse download(string path, httpservletresponse response) {
try {
// path是指欲下载的文件的路径。
file file = new file(path);
// 取得文件名。
string filename = file.getname();
// 取得文件的后缀名。
string ext = filename.substring(filename.lastindexof(".") + 1).touppercase();
// 以流的形式下载文件。
inputstream fis = new bufferedinputstream(new fileinputstream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的header
response.addheader("content-disposition", "attachment;filename=" + new string(filename.getbytes()));
response.addheader("content-length", "" + file.length());
outputstream toclient = new bufferedoutputstream(response.getoutputstream());
response.setcontenttype("application/octet-stream");
toclient.write(buffer);
toclient.flush();
toclient.close();
} catch (ioexception ex) {
ex.printstacktrace();
}
return response;
}
public void downloadlocal(httpservletresponse response) throws filenotfoundexception {
// 下载本地文件
string filename = "operator.doc".tostring(); // 文件的默认保存名
// 读到流中
inputstream instream = new fileinputstream("c:/operator.doc");// 文件的存放路径
// 设置输出的格式
response.reset();
response.setcontenttype("bin");
response.addheader("content-disposition", "attachment; filename=\"" + filename + "\"");
// 循环取出流中的数据
byte[] b = new byte[100];
int len;
try {
while ((len = instream.read(b)) > 0)
response.getoutputstream().write(b, 0, len);
instream.close();
} catch (ioexception e) {
e.printstacktrace();
}
}
public void downloadnet(httpservletresponse response) throws malformedurlexception {
// 下载网络文件
int bytesum = 0;
int byteread = 0;
url url = new url("windine.blogdriver.com/logo.gif");
try {
urlconnection conn = url.openconnection();
inputstream instream = conn.getinputstream();
fileoutputstream fs = new fileoutputstream("c:/abc.gif");
byte[] buffer = new byte[1204];
int length;
while ((byteread = instream.read(buffer)) != -1) {
bytesum += byteread;
system.out.println(bytesum);
fs.write(buffer, 0, byteread);
}
} catch (filenotfoundexception e) {
e.printstacktrace();
} catch (ioexception e) {
e.printstacktrace();
}
}
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
-
-
-
java实现通讯录管理系统
本文实例为大家分享了java实现通讯录管理系统的具体代码,供大家参考,具体内容如下完成项目的流程:1.根据需求,确定大体方向 2.功能模块分析 3.界面实现 4...
[阅读全文]
-
-
-
-
Java中生产者消费者问题总结
生产者-消费者算是并发编程中常见的问题。依靠缓冲区我们可以实现生产者与消费者之间的解耦。生产者只管往缓冲区里面放东西,消费者只管往缓冲区里面拿东西。这样我们避免...
[阅读全文]
-
-
网友评论