今天系统中用来生成二维码的功能突然不工作了,二维码无法显示
控制台js报错如下:
Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING qrImg.jsp:1
上网找了篇文章,说因为多了close,而我的代码里却偏偏没有,晕,没道理啊
IIS & Chrome: failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
我觉得不对,输出流最后应该要做close处理的,否则资源就一直不释放,时间长了肯定会出问题
<jsp:directive.page contentType="text/html" pageEncoding="UTF-8" />
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="org.apache.logging.log4j.*"%>
<%@ page import="com.google.zxing.BarcodeFormat"%>
<%@ page import="com.google.zxing.EncodeHintType"%>"%>
<%@ page import="com.google.zxing.MultiFormatWriter"%>
<%@ page import="com.google.zxing.WriterException"%>
<%@ page import="com.google.zxing.client.j2se.MatrixToImageWriter"%>
<%@ page import="com.google.zxing.common.BitMatrix"%>
<%
String url = java.net.URLDecoder.decode(request.getParameter("url"),"utf-8");
java.io.OutputStream op = response.getOutputStream();
int width = 120;
int height = 120;
String format = "png";
Hashtable<EncodeHintType, Object> hints= new Hashtable<EncodeHintType, Object> ();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
hints.put(EncodeHintType.MARGIN, 1);
BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, width, height,hints);
MatrixToImageWriter.writeToStream(bitMatrix, format, op);
response.setContentType("application/x-png");
response.addHeader("Content-Disposition", "inline; filename=qr.png");
op.flush();
op.close(); // 需要增加这一句,用来释放资源
%>
加了这一句,功能恢复正常,二维码能显示了。