java 两种上传文件(图片)方式+服务端获取方式

一:ajaxfileupload上传

java 两种上传文件(图片)方式+服务端获取方式_第1张图片


二:uploadify上传

java 两种上传文件(图片)方式+服务端获取方式_第2张图片


三:java服务器端代码

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("utf-8");

String errorDesc = "";
String name = "";
String filename = "";
String reName = "";

//获得磁盘文件条目工厂。  
        DiskFileItemFactory factory = new DiskFileItemFactory();  
        //获取文件上传需要保存的路径,upload文件夹需存在。  
        //    String path = request.getSession().getServletContext().getRealPath("/upload");  
        String   path = "" ;  


        path = Settings.ROOT_PATH + File.separator +"uploads" + File.separator + "carImg";
    
       
        //设置暂时存放文件的存储室,这个存储室可以和最终存储文件的文件夹不同。因为当文件很大的话会占用过多内存所以设置存储室。  
    //   factory.setRepository(new File(path));  
        //设置缓存的大小,当上传文件的容量超过缓存时,就放到暂时存储室。  
     //  factory.setSizeThreshold(1024*1024);  
        //上传处理工具类(高水平API上传处理?)  
        ServletFileUpload upload = new ServletFileUpload(factory);  
          
        try{  
            //调用 parseRequest(request)方法  获得上传文件 FileItem 的集合list 可实现多文件上传。  
            List<FileItem> list = (List<FileItem>)upload.parseRequest(request);  
            for(FileItem item:list){  
       
         String type = item.getContentType();  
         if(type == null) {  
               continue;  
         }  
          name = item.getFieldName();  
  
                //如果获取的表单信息是普通的文本信息。即通过页面表单形式传递来的字符串。  
                if(item.isFormField()){  
                    //获取用户具体输入的字符串,  
                    String value = item.getString();  
                    request.setAttribute(name, value);  
                }  
                
                //如果传入的是非简单字符串,而是图片,音频,视频等二进制文件。  
                else{   
                    //获取路径名  
                    String value = item.getName();  
                    //取到最后一个反斜杠。  
                    int start = value.lastIndexOf("\\");  
                    filename = value.substring(start+1);  
              //    request.setAttribute(name, filename);  
                    String suffix = filename.substring(filename.lastIndexOf("."));
                    reName =  ServerInitServlet.sdf1.format(new Date()) + Tools.getValidateCode() + suffix; 
                    
                    FileUtils.copyInputStreamToFile(item.getInputStream(),new File(path,reName));
                }  
            }  
        }catch(Exception e){  
            e.printStackTrace(); 
            errorDesc += "失败";
        }  
      
}

你可能感兴趣的:(java 两种上传文件(图片)方式+服务端获取方式)