try {
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", "attachmentfilename=" + 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
}
客户端稍作改动:byte[] cc = new byte[1024]
int len
while ((len=in.read(cc))!=-1) {
write.write(cc, 0, len)
}
然后就可以了。
会不会是多线程同时下载一张图片?
inputStream = conn.getInputStream()
如果有两个线程同时将这个流写入到指定文件应该就会出错了吧!
之前写一个下载APK文件会出现APK解析错误,借此思路,希望能帮到你!~
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)