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";
        }
    
    
    }
  • 相关阅读:
    在 electron-vue 中的 Windows 下的路径问题,path.resolve 替换为 path.posix.join 。
    NLTK数据包下载频繁报错——解决方法
    常用正则表达式匹配
    NLTK的安装与简单测试
    Scrapy模块使用出错,出现builtins.ImportError: DLL load failed: 找不到指定的程序
    正则表达式手册
    数据分布vs聚类-数据预处理技巧-对数变换
    Python机器学习入门(1)之导学+无监督学习
    Pygame游戏开发入门(1)-开发框架
    Python-文件和数据格式化
  • 原文地址:https://www.cnblogs.com/alliswell/p/3035103.html
Copyright © 2011-2022 走看看