文件处理二维码的处理

    xiaoxiao2021-04-13  37

    1、创建二维码 public void CreatCode(HttpServletRequest request, HttpServletResponse response) throws Exception { String content="http://www.baidu.com";//内容 String fileName="filename";//文件名字 String encodeddata=content; String name=fileName; String FilePath = "C:\\CODE\\IMAGE\\" + name + ".PNG"; // 生成的图片位置 File f = new File(FilePath); if(!f.exists()){ File dirname = new File("C:\\CODE\\IMAGE\\"); if (!dirname.isDirectory()) { //目录不存在 dirname.mkdirs(); //创建目录 } Qrcode qrcode = new Qrcode(); qrcode.setQrcodeErrorCorrect('M'); qrcode.setQrcodeEncodeMode('B'); qrcode.setQrcodeVersion(7); byte[] d = encodeddata.getBytes("GBK"); BufferedImage bi = new BufferedImage(139, 139,BufferedImage.TYPE_INT_RGB); // createGraphics Graphics2D g = bi.createGraphics(); // set background g.setBackground(Color.WHITE); g.clearRect(0, 0, 139, 139); g.setColor(Color.BLACK); if (d.length > 0 && d.length < 123) { boolean[][] b = qrcode.calQrcode(d); for (int i = 0; i < b.length; i++) { for (int j = 0; j < b.length; j++) { if (b[j][i]) { g.fillRect(j * 3 + 2, i * 3 + 2, 3, 3); } } } } g.dispose(); bi.flush(); ImageIO.write(bi, "png", f); System.out.println(encodeddata+"****"); } Download(request,response,URLEncoder.encode(URLEncoder.encode(fileName+".png","utf-8"),"utf-8"),URLEncoder.encode(URLEncoder.encode(FilePath,"utf-8"),"utf-8")); }

    二、下载二维码

    public void Download(HttpServletRequest request, HttpServletResponse response,String fileName,String filePath){ try { fileName=URLDecoder.decode(URLDecoder.decode(fileName, "UTF-8"), "UTF-8"); fileName = new String(fileName.getBytes(), "ISO-8859-1"); //response.setHeader("Content-disposition", "attachment;filename="+ URLEncoder.encode(fileName+".png","UTF-8")); response.setHeader("Content-disposition", "attachment;filename="+ fileName); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } response.setContentType("application/vnd.ms-excel;charset=utf-8"); try{ filePath=URLDecoder.decode(URLDecoder.decode(filePath, "UTF-8"), "UTF-8"); FileInputStream fis =new FileInputStream(filePath); OutputStream oa = response.getOutputStream(); byte[] b = new byte[1024]; int i=0; while((i=fis.read(b))>0) { oa.write(b,0,i); } fis.close(); oa.flush(); oa.close(); } catch (IOException e) { e.printStackTrace(); } }

    转载请注明原文地址: https://ju.6miu.com/read-668434.html

    最新回复(0)