Java文件上传功能代码 —— 普遍适用

一. 前言

  通过之前的博客,基本上已经将各个框架上传文件的功能逻辑理清楚,有文件下载肯定就需要有文件上传,那么接下来会跟大家一起分享各个框架上传文件的功能代码;

  那么,今天我们将重点放在各个框架适用的java文件上传功能代码方面,直接切入主题:

二. 实例  

  1. 方法实例:
//upload file,普通java上传文件方式
    public String uploadFile() throws IOException{

        //file为获取到的前台的文件,每个框架获取的方式不一样,可按需去查询
        File file = "前台的文件";

        //fileName为文件的名称,可通过file获取,不同框架获取的方式不一样
        String fileName = "文件的名称,包括格式";

        //获取文件的项目的根路径,不同框架获取的方式不一样,这里使用struts2的获取方式
        String basePath=ServletActionContext.getServletContext().getRealPath("/upload");

        //拼接成完整的指定的文件路径名,创建新文件
        String filePath = basePath+File.separator+fileName;
        File file = new File(filePath);
        if(file.exists()){
            file.delete();
        }

        //使用输入流读取前台的file文件              
        InputStream is=new FileInputStream(file);  

        //循环读取输入流文件内容,通过输出流将内容写入新文件
        OutputStream os=new FileOutputStream(file);  
        byte buffer[]=new byte[1024];  
        int cnt=0;  
        while((cnt=is.read(buffer))>0){  
            os.write(buffer, 0, cnt);  
        }  
        //关闭输入输出流
        os.close();
        is.close();  

        return null;            
    }

三. 总结

  1. 使用java普通的上传文件的方式上传文件,主要涉及的两个点就是java对文件的输入输出流(inputStream和outputStream),如果程序员的输入输出流基本功够扎实的话对这些基本上都是得心应手的;

  2. java上传文件的基本逻辑就是:获取前台的file文件》获取文件名(包括格式)》获取指定保存上传文件的根路径》根据根路径和文件名,创建新文件》通过输入流循环读取前台的file文件》通过输出流循环将读取到的file文件写入到创建的新文件》关闭输入输出流;所以,如果了解了上传文件的基本逻辑之后,在解决上传问题的时候就游刃有余了