import org.apache.commons.codec.binary.Base64;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
//1.文件下载(postman可试)
public static void postmanLoad(String url, HttpServletResponse response) throws Exception {
File file = new File(url);
byte [] bytes = File2byte(file);
try {
response.setHeader("Content-Disposition",
"attachment; filename=\"" + "123.jpg" + "\"");
OutputStream out = response.getOutputStream();
if (bytes != null) {
out.write(bytes);
}
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 将文件转换成byte数组
*/
public static byte[] File2byte(File tradeFile){
byte[] buffer = null;
try
{
FileInputStream fis = new FileInputStream(tradeFile);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[10240];
int n;
while ((n = fis.read(b)) != -1)
{
bos.write(b, 0, n);
}
fis.close();
bos.close();
buffer = bos.toByteArray();
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
return buffer;
}
//2.从地址下载转成Base64编码
public static String downLoadFromUrlBase64(String urlStr) throws Exception {
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//设置超时间为10秒
conn.setConnectTimeout(10 * 1000);
//得到输入流
InputStream inputStream = conn.getInputStream();
return DownLoadFileUtil.getBase64FromInputStream(inputStream);
}
/**
* 将inputstream转为Base64
public static String getBase64FromInputStream(InputStream is) throws Exception {
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
byte[] data = null;
// 读取图片字节数组
try {
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buff = new byte[100];
int rc = 0;
while ((rc = is.read(buff, 0, 100)) > 0) {
swapStream.write(buff, 0, rc);
}
data = swapStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
throw new Exception("输入流关闭异常");
}
}
}
return Base64.encodeBase64String(data);
}