/**
* base转文件并下载到浏览器
* @param base64 文件base64
* @param fileName 文件名称(需要带后缀名,如 xxxx.word)
* @throws Exception
*/
public static void downloadBase64File(String base64, String fileName, HttpServletRequest request,HttpServletResponse response) throws Exception {
String agent = request.getHeader("User-Agent").toLowerCase();
if (agent.contains("msie") || (agent.indexOf("gecko") > 0 && agent.indexOf("rv:11") > 0)) {//IE
fileName = URLEncoder.encode(fileName, "UTF-8");
} else {
fileName = new String(fileName.getBytes(), "ISO-8859-1");
}
byte[] bytes = Base64.decodeBase64(base64);
for (int i = 0; i<bytes.length; ++i) {
if (bytes[i] < 0) {
bytes[i] +=256;
}
}
response.setCharacterEncoding("UTF-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName=\"" + fileName+ "\"");
InputStream inputStream = new ByteArrayInputStream(bytes);
OutputStream os = response.getOutputStream();
byte[] b = new byte[2048];
int length;
while ((length = inputStream.read(b)) > 0) {
os.write(b, 0, length);
}
os.close();
inputStream.close();
}
base转文件并输出到客户端
于 2022-07-15 10:07:52 首次发布