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文件上传功能代码

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pytest重试_pytest失败重跑

    pytest重试_pytest失败重跑安装:pip3installpytest-rerunfailures重新运行所有失败用例要重新运行所有测试失败的用例,请使用–reruns命令行选项,并指定要运行测试的最大次数:$py

  • 服务器pfx文件如何导入,linux 导入pfx 证书

    服务器pfx文件如何导入,linux 导入pfx 证书linux导入pfx证书内容精选换一换单击“开始”,运行框输入“MMC”,回车。在MMC控制台菜单栏中单击“文件”,选择“添加/删除管理单元”。在“添加或删除管理单元”对话框,选择“可用管理单元”区域的“证书”。单击“添加”添加证书。在“证书管理”对话框,选择“计算机账户”,单击“下一步”。在“选择计算机”对话框,单击“完成”。在“添加或删除管理单元”对话框,单击“确定”。在单击“开始”,运…

  • 详解Anaconda + 如何在Anaconda上更换python版本「建议收藏」

    详解Anaconda + 如何在Anaconda上更换python版本「建议收藏」本文旨在详细介绍Anaconda以及如何在Anaconda上更换python版本。

  • idea替换区分大小写[通俗易懂]

    idea替换区分大小写[通俗易懂]

  • python和java哪个更值得学_java和python

    python和java哪个更值得学_java和python从去年到现在IA人工智能热度一直都是上升,而且很多有经验的程序员也打出“2018年不学习Python还能学习哪种编程语言“的口号,可对于初学者来说,Python相对比较简单。Python的语法类似于伪

  • c语言getchar()的用法_c=getchar()

    c语言getchar()的用法_c=getchar()文章目录getchar()函数定义函数返回值注意区分getchar和scanfgetchar的使用实例getchar()函数定义getchar()-字符输入函数,没有参数,从输入缓冲区里面读取一个字符-「一次只能读取一个字符」EOF(-1)-endoffile文件结束标志-键盘上用ctrl+z实现先查一下文档函数返回值该函数以无符号char强制转换为int的形式返回读取的字符,如果到达文件末尾或发生读取错误,则返回EOF(-1

    2022年10月18日

发表回复

您的电子邮箱地址不会被公开。

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