Java生成验证码、图片上传、下载、图片水印

下载代码
 导入<span style="color:#ff00;">jsmartcom_zh_CN.jar </span><span style="color:#000000;"></span>
package com.zuxia.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.SmartUpload;

public class DownloadServlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request, response);
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		//获取用户需要下载的文件
		String downFile = request.getParameter("downFile");

		//GET处理中文
		downFile = new String(downFile.getBytes("ISO-8859-1"),"GB2312");
		
		//创建smart对象
		SmartUpload smart = new SmartUpload();
		
		//初始化
		smart.initialize(super.getServletConfig(), request, response);
		
		//设置浏览器的行为。(始终以附件的形式处理文件)
		smart.setContentDisposition(null);
		
		try {
			//下载当前文件
			smart.downloadFile("/images/"+downFile);
		} catch (Exception e) {
			//HTTP协议
			//e.printStackTrace();
		}
		
	}

}
<pre class="java" name="code"><%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@page import="java.io.File"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>上传数据</title>
</head>

<body>
	<h1>当前目录下的所有文件:</h1>
	<%
	
		File f = new File(super.getServletContext().getRealPath("/")+"images");
		
		File fs[]  = f.listFiles();
		
		for(File cf : fs){
			
			out.println("<a href='DownloadServlet?downFile="+cf.getName()+"'>"+cf.getName()+"</a><br />");
			
		}
	
	%>
</body>
</html>

 
上传代码
<pre class="java" name="code">package com.zuxia.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.File;
import com.jspsmart.upload.Files;
import com.jspsmart.upload.SmartUpload;

public class UploadServlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request, response);
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("GB2312");
		response.setCharacterEncoding("GB2312");
		
		//开始编写上传的代码
		SmartUpload smart = new SmartUpload();
		
		//2. 初始化
		smart.initialize(super.getServletConfig(), request, response);
		
		//3. 限制上传文件的类型
		smart.setAllowedFilesList("jpg,png,ioc,bmp,jpeg");
		
		try {
			//3. 调用上传方法
			smart.upload();
			
			//必须使用smart中Request对象,而是必须在upload()方法之后。
			String tname = smart.getRequest().getParameter("txtname");
			
			System.out.println(tname+"111111111111111111111111111111");
			//4. 将文件保存到服务器
			//smart.save("/images");
			
			//对上传的文件进行重命名
			Files fs = smart.getFiles();
			
			System.out.println(fs.getCount()+"................");
			for(int i=0;i<fs.getCount();i++){
				File f = fs.getFile(i);
				if(f.isMissing()==false){
					System.out.println(f.getFileName()+"................");
					f.saveAs("/images/"+System.currentTimeMillis()+f.getFileName());
					
				}							
			}
			
		} catch (Exception e) {
			
			request.setAttribute("msg", "您上传的文件不合法!(允许:image 、html)");
			
			request.getRequestDispatcher("/index.jsp").forward(request, response);
		}
		
		
		
	}

}

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>上传数据</title>

<script type="text/javascript">
	function getCode(imgobj){
		imgobj.src="RandomCodeServlet?"+Math.random();
	}
</script>

</head>

<body>
	<img src="RandomCodeServlet" alt="" οnclick="getCode(this)" />

	${msg }
<form id="form1" name="form1" method="post" action="UploadServlet" >
  请选择文件 :
  <br />
  <input type="text" name="txtname" />
  <br />  
  <input type="file" name="a" value="C:\Users\Administrator\Desktop\images\images\xd.png"/><br />
  <input type="file" name="b"/><br />
  
  <label>
  <input type="submit" name="Submit" value="提交" />
  </label>
</form>
</body>
</html>

 
验证码:
<pre class="java" name="code">package com.zuxia.servlet;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RandomCodeServlet extends HttpServlet {


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request, response);
	}


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("image/jpg");
		
		//2. 使用虚拟画布,填充图像
		BufferedImage bg = new BufferedImage(80,30,BufferedImage.TYPE_3BYTE_BGR);
		
		//3. 获取虚拟画布的画笔
		Graphics g = bg.getGraphics();
		
		Random rd = new Random();
		int val = rd.nextInt(9000)+1000;
		
		request.getSession().setAttribute("code", val+"");
		
		//填充背景为白色
		g.setColor(Color.WHITE);		
		g.fillRect(0, 0, 80,30);
		
		//设置字体
		g.setFont(new Font("楷体", Font.BOLD, 20));
		
		g.setColor(Color.BLACK);
		g.drawString(val+"", 10, 15);
		
		g.dispose();
		
		ImageIO.write(bg, "png", response.getOutputStream());
	}

}

 
图片水印
<pre class="java" name="code">package com.zuxia.servlet;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.PrintWriter;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.ImageIcon;

public class ImageServlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request, response);
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//设置输出到客户端的是一张图片,而不是一个网页
		response.setContentType("image/jpg");
		
		//1. 获取图片
		ImageIcon imgicon = new ImageIcon(super.getServletContext().getRealPath("/")+"images/Winter.jpg");
		ImageIcon logo = new ImageIcon(super.getServletContext().getRealPath("/")+"images/clip_image002.gif");
		
		int h = imgicon.getIconHeight();
		int w = imgicon.getIconWidth();
		Image img = imgicon.getImage();
		
		//2. 使用虚拟画布,填充图像
		BufferedImage bg = new BufferedImage(w,h,BufferedImage.TYPE_3BYTE_BGR);
		
		//3. 获取虚拟画布的画笔
		Graphics g = bg.getGraphics();
		
		g.drawImage(img, 0, 0, null);
		
		g.drawImage(logo.getImage(), 10, 70, null);
		
		g.drawString("http://www.cqzuxia.com", 10,30);
		
		g.drawString("版权所有,违者必究", 10,50);
		
		g.dispose();
		
		//输出到页面
		ImageIO.write(bg, "png", response.getOutputStream());
		
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值