JSP实现文件上传和下载出现异常,求助大神

月半不是月巴 2017-07-03 11:23:05
下面是我的源码:

//jsp页面

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>上传文件界面</title>
</head>
<body>
<form action="UploadCourseServlet" method="post" entype="multipart/form-data">
<table>
<tr>
<td>课程名称:</td>
<td><input type="text" name="courseName"></td>
</tr>
<tr>
<td>课程描述:</td>
<td>
<textarea rows="10" cols="30" name="coursedis"></textarea>
</td>
</tr>
<tr>
<td>请选择课件:</td>
<td><input type="file" name="resPath"></td>
</tr>
<tr>
<td align="right"><input type="reset" value="重填"></td>
<td><input type="submit" value="上传"></td>
</tr>
</table>
</form>
</body>
</html>



//servlet代码

package com.servlet;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Iterator;
import java.util.List;

import javax.servlet.RequestDispatcher;
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 org.apache.tomcat.util.http.fileupload.FileItem;
import org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory;
import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;

import util.MyUtil;


@WebServlet(name="UploadCourseServlet",urlPatterns={"/UploadCourseServlet"})
public class UploadCourseServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection con =null;
PreparedStatement ps = null;
DiskFileItemFactory itemFactory =new DiskFileItemFactory();

File tempDir = new File("D:\\temp");
if(!tempDir.exists()){
tempDir.mkdir();
}

itemFactory.setRepository(tempDir);
ServletFileUpload sfu = new ServletFileUpload(itemFactory);
sfu.setFileSizeMax(10*1024*1024);
RequestDispatcher dis1=request.getRequestDispatcher("showInfo");
RequestDispatcher dis2=request.getRequestDispatcher("uploadFail.jsp");
RequestDispatcher dis3=request.getRequestDispatcher("uploadCourse.jsp");
try{
List<FileItem>fileItems=sfu.parseRequest(request);
Iterator<FileItem>itr=fileItems.iterator();
File uploadFileDir=new File("D:\\uploadFile");
if(!uploadFileDir.exists()){
uploadFileDir.mkdir();
}

while (itr.hasNext()) {
FileItem fitem=itr.next();
if(!fitem.isFormField()){

String name = fitem.getName();
long size =fitem.getSize();

if(null==name||"".equals(name)&&size==0){
dis3.forward(request, response);
}

int index=name.lastIndexOf(File.separator);
if(index>0){
name=name.substring(index+1,name.length());
}

String fileType=name.substring(name.lastIndexOf("."));
String newName=MyUtil.getStringID()+fileType;
request.setAttribute(fitem.getFieldName(), newName);
File newFile=new File(uploadFileDir,newName);
fitem.write(newFile);
}else{
request.setAttribute(fitem.getFieldName(), fitem.getString("utf-8"));
}
}
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/web","root","");
String sql="insert into coursetable values(?,?,?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, MyUtil.getStringID());
ps.setString(2, MyUtil.getParameter(request, "courseName"));
ps.setString(3, MyUtil.getParameter(request, "coursedis"));
ps.setString(4, MyUtil.getParameter(request, "resPath"));
ps.executeUpdate();
ps.close();
con.close();
dis1.forward(request, response);
}catch(Exception e){
e.printStackTrace();
dis2.forward(request, response);
}
}

}

界面:


然后出现如下的报错,实在解决不了:


...全文
170 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

24,923

社区成员

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

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