文件上传
新建项目后首先要记得导包,所以项目大概结构为:
jsp页面主要代码为:
<form action="upload" method="post" enctype="multipart/form-data">
上传图片:<input type="file" name="file"/><br> <br>
<input type="submit" value="确定" />
</form>
新建一个servlet:
在doPost方法里写主要代码:
package cn.xxs.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;
/**
* Servlet implementation class UploadServlet
*/
@WebServlet("/upload")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public UploadServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// doGet(request, response);
SmartUpload su = new SmartUpload();// 实例化
su.initialize(getServletConfig(), request, response);// 初始化
su.setMaxFileSize(10000000);
su.setTotalMaxFileSize(100000000);
su.setAllowedFilesList("jpg,png,gif");// 允许上传的格式
try {
su.setDeniedFilesList("rmvb,avi,mp4");// 不允许上传的格式
try {
su.upload();
File file = su.getFiles().getFile(0);
System.out.println(file.getFieldName());
String path = request.getRealPath("/images/");
file.saveAs(path + "/" + changeName(file.getFileName()));
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 改名字为上传时间+随机数+拓展名
public String changeName(String oldName) {
String expand = oldName.substring(oldName.lastIndexOf("."));// 截取拓展名
Date d = new Date();
Random r = new Random();
return d.getTime() + r.nextInt(99999) + expand;
}
}
然后运行,你会发现虽然成功了,但是你找不到你上传的文件。
这时候,你把你tomcat下项目remove了。
先右击它clean-->ok一下,再双击它进入一个窗口改成如图所示:
最后部署项目运行即可,上传的文件可在如下图所示位置找到: