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

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

大家好,又见面了,我是你们的朋友全栈君。

一. 前言
  通过之前的博客,基本上已经将各个框架上传文件的功能逻辑理清楚,有文件下载肯定就需要有文件上传,那么接下来会跟大家一起分享各个框架上传文件的功能代码;
  那么,今天我们将重点放在各个框架适用的java文件上传功能代码方面,直接切入主题:

二. 实例

  1.方法实例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 filelocal = new File(filePath);
        if(filelocal.exists()){
        	filelocal.delete();
        }
		
		//使用输入流读取前台的file文件				
        InputStream is=new FileInputStream(file);  
		
		//循环读取输入流文件内容,通过输出流将内容写入新文件
        OutputStream os=new FileOutputStream(filelocal);  
        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;            
	}

  2.方法实例2,连起来的简单代码工具类:


	//file为上传的文件File,转换为inputstream流	
	InputStream stream=new FileInputStream(file);
	//创建本地的临时空文件
	File fileTem = new File("C:\\img\\tem"+new Date().getTime()+".jpg"); 
	// 获得上传文件输入流
	BufferedInputStream in = new BufferedInputStream(stream);
	// 获得本地文件输出流
	BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(fileTem));
	// 将上传文件写到指定的本地文件里
	org.apache.commons.fileupload.util.Streams.copy(in, out, true);

	//关闭输入输出流
	in.close();
	out.close();
	

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

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

上一篇:jfinal框架文件下载功能代码

下一篇:ssh框架之springmvc文件上传功能代码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146334.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm 重装后双击无反应的一种解决方法

    pycharm 重装后双击无反应的一种解决方法问题描述之前安装的2018版本的pycharm,更新失败之后自动删除,所以重装了一个2020.1,然后发现双击无反应。解决方法用下面方法解决后,记录一下过程:在“添加和删除程序”中发现了pycharm2018版本的程序名,但目录文件已被删除。于是通过注册表编辑器(cmd输入regedit),在编辑→查找中查找pycharm发现了pycharm2018项,将其删除后添加或删除程序里…

    2022年8月26日
    2
  • 微信开发者工具报错,提示 未找到入口 app.json 文件

    微信开发者工具报错,提示 未找到入口 app.json 文件微信开发者工具报错,提示 未找到入口 app.json 文件

    2022年4月24日
    84
  • lrzsz命令包的下载及安装

    lrzsz命令包的下载及安装安装lrzsz命令包后可以使用上传(rz)命令和下载(sz)命令安装推荐yum可以一步到位从下载到安装(https://img-blog.csdnimg.cn/20190411194245896.png)

    2022年6月23日
    61
  • IT找工作指南

    IT找工作指南IT找工作指南

    2022年4月23日
    52
  • veryCD名言「建议收藏」

    veryCD名言「建议收藏」电骡文化:1.快并快乐着!2.共享世界,有你才精彩!3.你共享一小文件,对于你来说是一小文件,但对于世界上的骡友来说是一个大文件。来自VeryCD 的原创(VeryCD 名人名言):(!)4.分享互联网5.梦里寻她千百度,蓦然回首,那资源竟在VeryCD 下载处。●———————————————————————————————————————————————————…

    2022年8月10日
    3
  • mnist数据集百度云链接「建议收藏」

    因为下载这个mnist实在是慢,所以我直接附上下载好的百度云链接包括下图中的内容mnist_data.rarmnist_test.csvmnist_test_10.csvmnist_train.csvmnist_train_100.csv链接:链接:https://pan.baidu.com/s/1V0WzUYvObLRU2wv8fYEwAg提取码:z9bh复制这段内容后打开…

    2022年4月15日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号