我想实现一个upload.jsp上传的页面。在upload.jsp页面中点击上传后,转到showFileName.jsp页面。在showFileName.jsp页面中显示上传文件的名字及上传的时间。
现在我不知道怎么把FileUpload.java 中得到的name 传给showFileName.jsp页面。请专家指教
代码如下:
package com.searchforyou.upload;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
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;
import org.apache.commons.fileupload.servlet.ServletRequestContext;
/**
*/
public class FileUpload extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
private HttpServletRequest req;
private HttpServletRequest resp;
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
resp.setContentType("text/html;charset=gb2312");
final String HOMELINK = "<a href=\"http://localhost:8080/SearchForYou/pages/showFileAddContent.jsp\">hhhhh</a><br/>";
boolean isMultipart = ServletFileUpload
.isMultipartContent(new ServletRequestContext(req));
String uploadPath = "";
String newFileName = "";
File writeFile = null;
if (isMultipart) {
try {
uploadPath = "D:\\Tomcat 5.5\\webapps\\resources";
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1000000);
factory.setRepository(new File(uploadPath));
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(req);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
[color=red]String name = item.getName().replaceAll(".+\\\\", "");//得到文件的名字,把它传给showFileName.jsp[/color]
//System.out.print(name);
//String type = item.getFieldName();
String type = item.getContentType();
System.out.print(type);
long size = item.getSize();
if ((name == null || name.equals("")) && size == 0) {
continue;
}
SimpleDateFormat fmt = new SimpleDateFormat(
"yyyyMMddhhmmssSSS");
newFileName = fmt.format(new Date()) + "_" + name;
writeFile = new File(uploadPath, newFileName);
item.write(writeFile);
//set.attribute(name);
out.println(HOMELINK + "上传成功");
//out.println(type);
out.println(name);
}
}
} catch (FileUploadException e) {
out.println(HOMELINK + e.toString());
} catch (FileNotFoundException e) {
out.println(HOMELINK + e.toString());
} catch (IOException e) {
out.println(HOMELINK + e.toString());
} catch (Exception e) {
out.println(HOMELINK + e.toString());
}
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
下面howFileName.jsp部分内容 ,[color=red] value="" 里面显示 FileUpload.java 中name的值(上面红色部分)。[/color]
ID: |
---|
在FileUpload 中
[code="java"]
String name = item.getName().replaceAll(".+\\", "");//得到文件的名字,把它传给showFileName.jsp
[/code]
之后
[code="java"]
req.setAttribute("name", name);
[/code]
然后在howFileName.jsp中
[code="java"]
value="<%=(String)request.getAttribute("name")%>"
[/code]
大致就是这样的。