氟塑料离心泵www.buybeng.com

jquery教程http://www.software8.co/wzjs/jquery/

java中servlet上传代码

使用om-ui上传的servlet代码:
需要jar:
commons-beanutils-1.8.0.jar
commons-collections-3.1.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
代码:
package org.operamasks.servlet;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import javax.servlet.ServletConfig;
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.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class OmEditorImageUploadServlet extends HttpServlet {
        // 上传文件的保存路径,相对于应用的根目录
          private static final String UPLOAD_PIC_PATH = "images/";
         
          private static final long MAX_SIZE = 10000000;// 设置上传文件最大为 1MB
         
        byte[] imgBufTemp = new byte[102401];
        private ServletContext servletContext;
       
        private String OMEditorFuncNum;
        public void init(ServletConfig config) throws ServletException {
            this.servletContext = config.getServletContext();
        }
       
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            // 获取客户端回调函数名
            OMEditorFuncNum = request.getParameter("OMEditorFuncNum");
            response.setContentType("text/html;charset=UTF-8");
            defaultProcessFileUpload(request, response);
        }
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doPost(request, response);
        }
       
        public String getSavePath(String fileName) {
            String realPath = servletContext.getRealPath("/");
            return realPath + UPLOAD_PIC_PATH + fileName;
        }
       
        public String getFileUrl(String fileName){
            return "../../images/" + fileName;
        }
        private void defaultProcessFileUpload(HttpServletRequest request, HttpServletResponse response)
                throws IOException {
            ServletFileUpload upload = new ServletFileUpload();
            upload.setHeaderEncoding("UTF-8");
            InputStream stream = null;
            BufferedOutputStream bos = null;
            String fileUrl = "";
            try {
                if (ServletFileUpload.isMultipartContent(request)) {
                    // 设置上传文件大小的最大限制为100KB
                    upload.setSizeMax(MAX_SIZE);
                    FileItemIterator iter = upload.getItemIterator(request);
                    while (iter.hasNext()) {
                        FileItemStream item = iter.next();
                        stream = item.openStream();
                        if (!item.isFormField()) {
                            String prefix = new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
                            // 得到文件的扩展名(无扩展名时将得到全名) 
                            String ext = item.getName().substring(item.getName().lastIndexOf(".") + 1);
                            String fileName = prefix + "." + ext;
                            String savePath = getSavePath(fileName);
                            fileUrl = getFileUrl(fileName);
                            File file=new File(savePath);
                            System.out.println(savePath);
                            System.out.println(fileUrl);
                            bos = new BufferedOutputStream(new FileOutputStream(file));
                            int length;
                            while ((length = stream.read(imgBufTemp)) != -1) {
                                bos.write(imgBufTemp, 0, length);
                            }
                        }
                    }
                    StringBuilder script = new StringBuilder();
                    // 执行客户端回调函数
                    script.append("
                   
                    response.getWriter().write(script.toString());
                }
            } catch (FileUploadException e) {
                e.printStackTrace();
                StringBuilder script = new StringBuilder();
                script.append("
                response.getWriter().write(script.toString());
            } finally {
                if (stream != null) {
                    try {
                        stream.close();
                    } catch (Exception e) {
                    }
                }
                if (bos != null) {
                    try {
                        bos.close();
                    } catch (Exception e) {
                    }
                }
            }
        }
}
一般servlet处理方式:
 public FileUploadServlet() { 
        super(); 
    } 
 
    public void destroy() { 
        super.destroy(); // Just puts "destroy" string in log 
        // Put your code here 
    } 
 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException { 
        doPost(request, response); 
    } 
 
    public void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException { 
        final long MAX_SIZE = 3 * 1024 * 1024;// 设置上传文件最大为 3M 
        // 允许上传的文件格式的列表 
        final String[] allowedExt = new String[] { "jpg", "jpeg", "gif", "txt", 
                "doc", "docx", "mp3", "wma", "m4a" }; 
        response.setContentType("text/html"); 
        // 设置字符编码为UTF-8, 这样支持汉字显示 
        response.setCharacterEncoding("UTF-8"); 
 
        // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload 
        DiskFileItemFactory dfif = new DiskFileItemFactory(); 
        dfif.setSizeThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘 
        dfif.setRepository(new File(request.getRealPath("/") 
                + "ImagesUploadTemp"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录 
 
        // 用以上工厂实例化上传组件 
        ServletFileUpload sfu = new ServletFileUpload(dfif); 
        // 设置最大上传尺寸 
        sfu.setSizeMax(MAX_SIZE); 
 
        PrintWriter out = response.getWriter(); 
        // 从request得到 所有 上传域的列表 
        List fileList = null; 
        try { 
            fileList = sfu.parseRequest(request); 
        } catch (FileUploadException e) {// 处理文件尺寸过大异常 
            if (e instanceof SizeLimitExceededException) { 
                out.println("文件尺寸超过规定大小:" + MAX_SIZE + "字节"); 
                out.println("返回"); 
                return; 
            } 
            e.printStackTrace(); 
        } 
        // 没有文件上传 
        if (fileList == null || fileList.size() == 0) { 
            out.println("请选择上传文件"); 
            out.println("返回"); 
            return; 
        } 
        // 得到所有上传的文件 
        Iterator fileItr = fileList.iterator(); 
        // 循环处理所有文件 
        while (fileItr.hasNext()) { 
            FileItem fileItem = null; 
            String path = null; 
            long size = 0; 
            // 得到当前文件 
            fileItem = (FileItem) fileItr.next(); 
            // 忽略简单form字段而不是上传域的文件域( 等) 
            if (fileItem == null || fileItem.isFormField()) { 
                continue; 
            } 
            // 得到文件的完整路径 
            path = fileItem.getName(); 
            // 得到文件的大小 
            size = fileItem.getSize(); 
            if ("".equals(path) || size == 0) { 
                out.println("请选择上传文件 "); 
                out.println("返回"); 
                return; 
            } 
 
            // 得到去除路径的文件名 
            String t_name = path.substring(path.lastIndexOf("\") + 1); 
            // 得到文件的扩展名(无扩展名时将得到全名) 
            String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1); 
            // 拒绝接受规定文件格式之外的文件类型 
            int allowFlag = 0; 
            int allowedExtCount = allowedExt.length; 
            for (; allowFlag < allowedExtCount; allowFlag++) { 
                if (allowedExt[allowFlag].equals(t_ext)) 
                    break; 
            } 
            if (allowFlag == allowedExtCount) { 
                out.println("请上传以下类型的文件"); 
                for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++) 
                    out.println("*." + allowedExt[allowFlag] 
                            + "   "); 
                out.println("返回"); 
                return; 
            } 
 
            long now = System.currentTimeMillis(); 
            // 根据系统时间生成上传后保存的文件名 
            String prefix = String.valueOf(now); 
            // 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下 
            String u_name = request.getRealPath("/") + "ImagesUploaded/" 
                    + prefix + "." + t_ext; 
            try { 
                // 保存文件 
                fileItem.write(new File(u_name)); 
                out.println("文件上传成功. 已保存为: " + prefix + "." + t_ext 
                        + "   文件大小: " + size + "字节"); 
                out.println("继续上传"); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
 
        } 
 
    } 
 
    public void init() throws ServletException { 
        // Put your code here 
    } 

posted on 2012-10-19 16:24 你爸是李刚 阅读(1040) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿

随笔档案

文章档案

技术网站

行业网站

搜索

最新评论

阅读排行榜

评论排行榜

站长网 氟塑料离心泵 注塑机 液晶广告机