<span style="font-size:18px;">用到的jar包 comm.io-2.4 commons-fileupload-1.3</span>
<span style="font-size:18px;">
</span>
<span style="font-size:18px;"></span><pre name="code" class="java">package com.hwj.model;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
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;
import com.hwj.interfaces.CourseServices;
import com.hwj.services.CourseServicesImp;
import com.hwj.utils.FileUtil;
public class BackUploadCl extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
//所需存入数据库的字段
String videoName="";
String courseName="";
String chapName="";
ServletContext servletContext=this.getServletContext();
if(request.getContentLength()>297){
DiskFileItemFactory factory=new DiskFileItemFactory();
//设置临时文件临界值
//factory.setSizeThreshold(100*1024*1024);
//设置临时文件路径
factory.setRepository(new File("C:\\Users\\jia\\Desktop\\temp"));
//创建一个新的uplodaFile的handle
ServletFileUpload upload=new ServletFileUpload(factory);
//上传内容大小
upload.setFileSizeMax(500*1024*1024);
List items=null;
try {
items=upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
Iterator iterator=items.iterator();
while(iterator.hasNext()){
FileItem item=(FileItem) iterator.next();
//如果是普通表单
if(item.isFormField()){
//普通字段
String name=item.getFieldName();
String value=item.getString("utf-8");
if(name.equals("videoName")){
videoName=value;
}else if(name.equals("courseName")){
courseName=value;
}else if(name.equals("chapName")){
chapName=value;
}
}
else{
//文件上传表单,获取所有属性
String fieldName = item.getFieldName();
String fileName = item.getName();
String contentType = item.getContentType();
boolean isInMemory = item.isInMemory();
long sizeInBytes = item.getSize();
String realPath=servletContext.getRealPath("WEB-INF\\uploadFile");
// System.out.println(fieldName+" "+fileName+" "+contentType+" "+isInMemory+" "+sizeInBytes+" "+realPath);
//上传资源
FileUtil.uploadFile(item.getInputStream(), realPath+"\\"+fileName);
//删除临时文件
item.delete();
}
}
}else{
//没文件
System.out.println("没文件");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
}
}
<span style="font-size:18px;">
</span>
<span style="font-size:18px;"></span><pre name="code" class="java">public class FileUtil {
public static void uploadFile(InputStream is,String path){
FileOutputStream fos=null;
try {
fos = new FileOutputStream(new File(path));
byte[] buff=new byte[1024];
int length=-1;
while((length=is.read(buff))!=-1){
fos.write(buff,0,length);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close(is, fos);
}
}
主要就这两个类