jsp实现将图片与文字同时上传

首先,我们要准备两个上传所需要的包

commons-fileuoload-1.3.1.jar

commons-io-2.4.jar

记得把包导入项目

这是Java类

FileUpload.java

package fileupload;

import java.io.File;

import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Iterator;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileUploadException;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class FileUpload {

public void doGet(HttpServletRequest request, HttpServletResponse response){

DiskFileItemFactory factory = new DiskFileItemFactory();//建立一个新的文件上传句柄

File dir = new File("E:/upload");//上传文件的存放位置

factory.setRepository(dir);// 设置存放临时文件的目录

ServletFileUpload upload = new ServletFileUpload(factory);// 用以上工厂实例化上传组件

List list = null;

try {

list = upload.parseRequest(request);

} catch (FileUploadException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}//从request得到所有上传域的列表

Iterator iter = list.iterator();// 得到所有上传的文件

while (iter.hasNext()) {//循环处理所得到的的文件信息

FileItem item = (FileItem)iter.next();

if(item.isFormField())

{

if ("text".equals(item.getFieldName())) {

//获取表单文本域数据

String text;

try {

text = item.getString("gb2312");

request.setAttribute("text", text);

} catch (UnsupportedEncodingException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

}

//处理文件

else

{

String filedname = item.getFieldName();

String filename = item.getName();

long size = item.getSize();

if ((filename == null || filename.equals("")) && size == 0) {

continue;

}

if (filedname.equals("file1")) {

String name1 = filename;

//时间格式化格式

SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMddHHmmssSSS");

//获取当前时间并作为时间戳

String timeStamp=simpleDateFormat.format(new Date());

//拼接新的文件名

String file1 =timeStamp+name1;

request.setAttribute("file1", file1);

// session.setAttribute("file1", file1)

try {

item.write(new File(dir, file1));

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

if (filedname.equals("file2")) {

String name2 = filename;

//时间格式化格式

SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMddHHmmssSSS");

//获取当前时间并作为时间戳

String timeStamp=simpleDateFormat.format(new Date());

//拼接新的文件名

String file2 =timeStamp+name2;

request.setAttribute("file2", file2);

try {

item.write(new File(dir, file2));

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

if (filedname.equals("file3")) {

String name3 = filename;

//时间格式化格式

SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMddHHmmssSSS");

//获取当前时间并作为时间戳

String timeStamp=simpleDateFormat.format(new Date());

//拼接新的文件名

String file3 =timeStamp+name3;

request.setAttribute("file3", file3);

try {

item.write(new File(dir, file3));

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

if (filedname.equals("file4")) {

String name4 = filename;

//时间格式化格式

SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMddHHmmssSSS");

//获取当前时间并作为时间戳

String timeStamp=simpleDateFormat.format(new Date());

//拼接新的文件名 Exness

String file4 =timeStamp+name4;

request.setAttribute("file4", file4);

try {

item.write(new File(dir, file4));

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

if (filedname.equals("file5")) {

String name5 = filename;

//时间格式化格式

SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMddHHmmssSSS");

//获取当前时间并作为时间戳

String timeStamp=simpleDateFormat.format(new Date());

//拼接新的文件名

String file5 =timeStamp+name5;

request.setAttribute("file5", file5);

try {

item.write(new File(dir, file5));

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

if (filedname.equals("file6")) {

String name6 = filename;

//时间格式化格式

SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMddHHmmssSSS");

//获取当前时间并作为时间戳

String timeStamp=simpleDateFormat.format(new Date());

//拼接新的文件名

String file6 =timeStamp+name6;

request.setAttribute("file6", file6);

try {

item.write(new File(dir, file6));

} catch (Exception e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

}}

}

}

然后是上传页面

form里method是post

一定要加上enctype=“multipart/form-data”

index.jsp

接着是处理页面add.jsp

${text }

${file1 }

${file2 }

${file3 }

${file4 }

${file5 }

${file6 }

上传成功!