文件处理 二维码的处理

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();
   }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值