下载代码
导入<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());
}
}