如何用java实现下载文件(包括图片)
4个回答
展开全部
/**
*
* @param f
* 保存的文件
* @param imgUrl
* 图片地址
*/
public void down(File f, String imgUrl) {
byte[] buffer = new byte[8 * 1024];
URL u;
URLConnection connection = null;
try {
u = new URL(imgUrl);
connection = u.openConnection();
} catch (Exception e) {
System.out.println("ERR:" + imgUrl);
return;
}
connection.setReadTimeout(100000);
InputStream is = null;
FileOutputStream fos = null;
try {
f.createNewFile();
is = connection.getInputStream();
fos = new FileOutputStream(f);
int len = 0;
while ((len = is.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (Exception e) {
f.delete();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
}
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
}
buffer = null;
// System.gc();
}
*
* @param f
* 保存的文件
* @param imgUrl
* 图片地址
*/
public void down(File f, String imgUrl) {
byte[] buffer = new byte[8 * 1024];
URL u;
URLConnection connection = null;
try {
u = new URL(imgUrl);
connection = u.openConnection();
} catch (Exception e) {
System.out.println("ERR:" + imgUrl);
return;
}
connection.setReadTimeout(100000);
InputStream is = null;
FileOutputStream fos = null;
try {
f.createNewFile();
is = connection.getInputStream();
fos = new FileOutputStream(f);
int len = 0;
while ((len = is.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (Exception e) {
f.delete();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
}
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
}
buffer = null;
// System.gc();
}
更多追问追答
追问
我的图片是包含在文件里面的,并不是单独的一张图片,比如说word文档里面包含几张图片,能有更好的解决方案吗
追答
那就下载Word文件啊,夏河下载图片没什么区别
展开全部
用流就可以操作,起本质就是复制粘贴。希望对你有所帮助。供参考。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
留下你的email,我发个例子给你
追问
我本人做了这个东西的,如果下载的文件里只包含文字,下载是没有问题的,但是下载的文件里包含图片,文件是能下载下来,但是myEclipse控制台会报 Connection reset by peer: socket write error这个错,如果能得到解决真是的万般感激啊,我的邮箱wanghui_hdf@163.com 谢谢!
追答
不好意思,刚看错了!还以为是上传呢!呵呵
response.setContentType("application/pdf");
pdfDisplayName = new String(pdfDisplayName.getBytes("gb2312"), "ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename=\""
+ pdfDisplayName + ".pdf" + "\"");
response.setContentLength(pdfbyte.length);
response.getOutputStream().write(pdfbyte);
这个是以下通过response传回文件的代码,你看看对你有没有用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接连接图片 或者文件的地址就可以了
如果有中文 可以到网上查下下载文件名中文转换
如果有中文 可以到网上查下下载文件名中文转换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询