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();
    		}



  • 相关阅读:
    洛谷P1661 扩散
    Vijos1056 图形面积
    Python爬取猪肉价格网并获取Json数据
    C#中巧用Lambda表达式实现对象list进行截取
    Winform中在ZedGraph中最多可以添加多少条曲线
    Nginx配置实例-动静分离实例:搭建静态资源服务器
    解决pip使用异常No module named 'pip'
    C#在循环中使用Random时生成的随机数相同的解决办法
    Winform中自定义ZedGraph右键复制成功后的提示
    C#中巧用Lambda进行数据的筛选查询等处理
  • 原文地址:https://www.cnblogs.com/liclBlog/p/15349584.html
Copyright © 2011-2022 走看看