文件上传一直是Web项目中必不可少的一项功能。
项目结构如下:(这是我之前创建的SSM整合的框架项目,在这上面添加文件上传与下载)
主要的是FileUploadController,doupload.jsp,up.jsp,springmvc.xml
1.先编写up.jsp
上传者:
选择文件:
选择文件:
以上便是up.jsp的核心代码;
2.编写doupload.jsp
request.setCharacterEncoding("utf-8");
String uploadFileName = ""; //上传的文件名
String fieldName = ""; //表单字段元素的name属性值
//请求信息中的内容是否是multipart类型
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
//上传文件的存储路径(服务器文件系统上的绝对文件路径)
String uploadFilePath = request.getSession().getServletContext().getRealPath("upload/" );
if (isMultipart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
//解析form表单中所有文件
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) { //依次处理每个文件
FileItem item = (FileItem) iter.next();
if (item.isFormField()){ //普通表单字段
fieldName = item.getFieldName(); //表单字段的name属性值
if (fieldName.equals("user")){
//输出表单字段的值
out.print(item.getString("UTF-8")+"上传了文件。
");
}
}else{ //文件表单字段
String fileName = item.getName();
if (fileName != null && !fileName.equals("")) {
File fullFile = new File(item.getName());
File saveFile = new File(uploadFilePath, fullFile.getName());
item.write(saveFile);
uploadFileName = fullFile.getName();
out.print("上传成功后的文件名是:"+uploadFileName);
out.print("\t\t下载链接:"+"