文件上传例子

保存为文件

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.List;

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 implements Dtfacade {

    public String doIt(HttpServletRequest request, HttpServletResponse response) {
        try {
            request.setCharacterEncoding("utf-8");
        } catch (UnsupportedEncodingException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        
        // 得到存放上传文件的目录真实路径
        String filePath = "E:\\upload";

        // 检查表单是否为multipart/form-data
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (!isMultipart) {
            System.out.println("表单参数不正确");
            return null;
        } // 失败

        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        // upload.setSizeMax(10* 1024 * 1024); // 文件最大尺寸,设为-1表示不受限制
        // factory.setSizeThreshold(256); // 缓存大小,设为-1表示不受限制
        // factory.setRepository(new File("D:\\temp")); // 设置一个临时目录,默认用容器分配的
        List<FileItem> items = null; // 解析请求得到所有的文件
        try {
            items = upload.parseRequest(request);
        } catch (FileUploadException e) {
            e.printStackTrace();
        }
         
        for (FileItem item : items) { // 依次处理每个上传的文件
            if (!item.isFormField()) { // 检查是否为File输入域
                File fullFile = new File(item.getName());
                File uploadedFile = new File(filePath, fullFile.getName());
                try {
                    item.write(uploadedFile);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return "{success:true,msg:'sample'}";
    }
}

保存到数据库BLOB

View Code
import java.io.File;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import oracle.sql.BLOB;

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.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.fy.ah.mng.entity.Dc03;
import com.fy.ah.mng.web.util.HBUtil;

public class FileUploadSvBlob implements Dtfacade {
    public String doIt(HttpServletRequest request, HttpServletResponse response) {
        Session session=HBUtil.getHBSession();
        try {
            request.setCharacterEncoding("utf-8");
        } catch (UnsupportedEncodingException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        
        // 得到存放上传文件的目录真实路径
        String filePath = "E:\\upload";

        // 检查表单是否为multipart/form-data
        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
        if (!isMultipart) {
            return null;
        } // 失败

        DiskFileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        // upload.setSizeMax(10* 1024 * 1024); // 文件最大尺寸,设为-1表示不受限制
        // factory.setSizeThreshold(256); // 缓存大小,设为-1表示不受限制
        // factory.setRepository(new File("D:\\temp")); // 设置一个临时目录,默认用容器分配的
        List<FileItem> items = null; // 解析请求得到所有的文件
        try {
            items = upload.parseRequest(request);
        } catch (FileUploadException e) {
            e.printStackTrace();
        }
         
         Transaction tr=session.beginTransaction();
        for (FileItem item : items) { // 依次处理每个上传的文件
            if (!item.isFormField()) { // 检查是否为File输入域
                File fullFile = new File(item.getName());
                File uploadedFile = new File(filePath, fullFile.getName());
                try {
                    InputStream is=item.getInputStream();
                    Dc03 d3=new Dc03();
                    d3.setDoc001(1);
                    d3.setDoc031(BLOB.getEmptyBLOB());
                    session.save(d3);
                    d3.setDoc031(Hibernate.createBlob(is));
                    session.save(d3);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        tr.commit();
         session.close();
        return "ok";
    }


}
原文地址:https://www.cnblogs.com/alliswell/p/3035103.html