zoukankan      html  css  js  c++  java
  • 文件上传例子

    保存为文件

    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";
        }
    
    
    }
  • 相关阅读:
    JavaScript函数基础知识
    The type 'Expression<>' is defined in an assembly that is not referenced.You must add a reference to assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
    不可不知的表达式树(2)创建动态查询
    ABP给WebApi添加性能分析组件Miniprofiler
    不可不知的表达式树(3)定制IQueryProvider
    ABP使用Miniprofiler监测EF
    使用Type.MakeGenericType,反射构造泛型类型
    在ABP的Web层中实现复杂请求跨域访问
    不可不知的表达式树(1)Expression初探
    ajax实现无刷新编辑表格,两个demo
  • 原文地址:https://www.cnblogs.com/alliswell/p/3035103.html
Copyright © 2011-2022 走看看