zoukankan      html  css  js  c++  java
  • java文件的上传与下载通用版

    上传文件同用版

    public void upload2(HttpServletRequest request , HttpServletResponse response){
            //创建一个通用的多部分解析器  
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
            //判断 request 是否有文件上传,即多部分请求(即检查form中是否有enctype="multipart/form-data")
            if(multipartResolver.isMultipart(request)){
                //转换成多部分request
                MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
                //取得request中的所有input的name 
                Iterator<String> iter = multiRequest.getFileNames();
                while(iter.hasNext()){
                    //取得一个input里面所有的上传文件  
                    List<MultipartFile> list = multiRequest.getFiles(iter.next());
                    for(MultipartFile file : list){
                        if(file != null){
                            //取得当前上传文件的文件名称 
                            String myFileName = file.getOriginalFilename();
                            //如果名称不为“”,说明该文件存在,否则说明该文件不存在  
                            if(myFileName.trim() != null){
                                //重命名上传后的文件名  
                                String saveName = UUID.randomUUID().toString() + myFileName.substring(myFileName.lastIndexOf("."));
                                //定义上传路径  
                                File localFile = new File("C:\test\",saveName);
                                try {
                                    //保存
                                    file.transferTo(localFile);
                                } catch (IllegalStateException e) {
                                    e.printStackTrace();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
    
                }
            }
        }

    文件下载通用版

    // 文件路径
    		String filePath = basePath + fileName;
    
    		try {
    			File file = new File(filePath);
    			if (file.exists()) {
    				InputStream fis = new BufferedInputStream(new FileInputStream(
    						filePath));
    				byte[] buffer = new byte[fis.available()];
    				fis.read(buffer);
    				fis.close();
    				// 清空response
    				response.reset();
    				// 设置response的Header
    				response.addHeader("Content-Disposition","attachment;filename="
    				+ new String(fileName.getBytes("iso8859-1"),"UTF-8"));
    				
    				response.addHeader("Content-Length", "" + file.length());
    				OutputStream toClient = new BufferedOutputStream(
    						response.getOutputStream());
    				response.setContentType("application/octet-stream");
    				toClient.write(buffer);
    				toClient.flush();
    				toClient.close();
    			} else {
    				String errorMsg = "没有找到文件,路径:" + filePath;
    			}
    		} catch (Exception e) {
    			String errorMsg = "文件下载,出现异常:" + e.getMessage();
    		}



  • 相关阅读:
    linux中编译C语言程序
    plsql 基础教程(二)
    plsql 基础教程(一)
    plsql开发笔记和小结
    表的约束
    一道面试题:说说进程和线程的区别
    HashTable实现原理
    HashMap、Hashtable、HashSet三种hash集合的区别
    Eclipse快捷键大全
    Statement、 PreparedStatement 、CallableStatement 区别和联系
  • 原文地址:https://www.cnblogs.com/liclBlog/p/15349584.html
Copyright © 2011-2022 走看看