public void exportImei(Long orderId,Integer imeiType,Long itemId,HttpServletRequest request,HttpServletResponse response) throws IOException{
HttpSession session = request.getSession();
List<ItemIMEI> itemImeis = iUserTradeSvc.queryDeliveryItemIMEI(orderId, imeiType, session);
List<String> imeis = new ArrayList<String>();
String name = new String();
for(ItemIMEI itemImei : itemImeis){
if(itemId.equals(itemImei.getItemId())){
imeis = itemImei.getItemIMEI();
name = itemImei.getItemName()+".txt";
}
}
BufferedOutputStream bos = null;
try {
response.setContentType("application/txt");
String agent = request.getHeader("USER-AGENT");//用户代理
// 防止中文文件名乱码
if (null != agent && -1 != agent.indexOf("MSIE")) {
String codedfilename = URLEncoder.encode(name, "UTF-8").replaceAll("+", "%20");
response.setHeader("Content-Disposition", "attachment;filename=" + codedfilename);
} else if (null != agent && -1 != agent.indexOf("Mozilla")) {
String codedfilename = MimeUtility.encodeText(name, "UTF-8", "B");
response.setHeader("Content-Disposition", "attachment;filename=" + codedfilename);
} else {
response.setHeader("Content-Disposition", "attachment;filename=" + name);
}
bos = new BufferedOutputStream(response.getOutputStream());
for(String imei : imeis){
bos.write(imei.getBytes());
bos.write("\r\n".getBytes());
}
} catch (IOException e) {
returnText(response, "导出IMEI失败!");
} finally {
if (bos != null)
bos.close();
}
}
通过流方式导出文件,防止文件名中文乱码
最新推荐文章于 2023-05-31 10:48:13 发布