DiskFileItemFactory,ServletFileUpload写完之后报500错误,怎么回事

zw0283 2014-12-03 09:16:35
第一个页面代码(JSP):



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

</head>

<body>
<form action="servlet/FileServlet" name="myForm" method="post" enctype="multipart/form-data">
文件1:<input type="file" name="fileUpName" /><br/>
文件2:<input type="file" name="fileUpNameTwo" /><br/>
文件3:<input type="file" name="fileUpNameThree" /><br/>
用户名:<input type="text" name="userName" ><br/>
用户爱好:
<input type="checkbox" name="userHobby" value="篮球" >篮球
<input type="checkbox" name="userHobby" value="足球" >足球
<input type="checkbox" name="userHobby" value="乒乓球" >乒乓球<br/>
<input type="submit" value="提交" />
</form>
</body>
</html>




Servlet代码:




package test;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
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 FileServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public FileServlet()
{
super();
}
public void destroy()
{
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{

}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

DiskFileItemFactory fileFactory=new DiskFileItemFactory();
//System.out.println("11111111111111");
ServletFileUpload sFileUpload=new ServletFileUpload(fileFactory);


try
{
java.util.List<FileItem> fileItemFile=sFileUpload.parseRequest(request);
for(int i=0;i<fileItemFile.size();i++)
{
FileItem tempFile=(FileItem)fileItemFile.get(i);
if(tempFile.isFormField()) //如果是文本
{
System.out.println("这是一个普通的文本表单,标签的name值为:"+tempFile.getFieldName());
System.out.println("这是前台的文本值(value):"+tempFile.getString("UTF-8"));
request.setAttribute("userTagText", tempFile.getString("UTF-8"));
}
else if(!(tempFile.getName().equals(""))&&(tempFile.getName()!=null))
{
String fileCode=(String)System.getProperties().get("tempFile.encoding");
System.out.println("JDK的默认编码格式为:"+fileCode);
String fileName=tempFile.getName();
System.out.println("文件原来的名称是:"+fileName);
fileName=new String(fileName.getBytes(fileCode),"UTF-8");
System.out.println("新的文件名称是:"+fileName);
String fileType=fileName.substring(fileName.lastIndexOf("."),fileName.length());
System.out.println("文件类型是:"+fileType);

String fileUUID=UUID.randomUUID().toString();
System.out.println("生成的UUID编码为:"+fileUUID);
String newFileName=fileUUID+fileType;
String fileURL=request.getSession().getServletContext().getRealPath("/UpLoad");
System.out.println("文件上传的地址为:"+fileURL);
File upLoadFile=new File(fileURL,newFileName);
try
{
tempFile.write(upLoadFile);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
catch(FileUploadException e)
{
e.printStackTrace();
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void init() throws ServletException
{

}
}



要用的JAR包我都正确导入了,全程IDE没有报错,就是在浏览器点提交的时候报500.怎么回事啊
...全文
258 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sui2121 2014-12-04
  • 打赏
  • 举报
回复
把报错信息 发出来看一下
howsun_zh 2014-12-04
  • 打赏
  • 举报
回复
500就是服务端错误,你得把错误堆栈贴出来啊。
tony4geek 2014-12-04
  • 打赏
  • 举报
回复
看看具体错误信息啊。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧