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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C# winform美化窗体

    C# winform美化窗体记录一下winform美化工具CSkin一个.Net的UI库。参考链接:https://blog.csdn.net/yyl7727/article/details/78904125?spm=1001.2014.3001.5502

    2022年5月24日
    37
  • Python实现人脸识别「建议收藏」

    Python实现人脸识别「建议收藏」案例分析概述Python在人脸识别方面功能很强大,程序语言简单高效,下面编程实现一下如何实现人脸识别。分别给出实现代码,作为学习和技术交流。Python基础环境准备参见:https://blog.csdn.net/yan_dk/article/details/89528463案例实现打开显示图片importcv2#opencv库#读…

    2025年5月31日
    2
  • [leetcode]Search for a Range

    [leetcode]Search for a Range

    2022年1月14日
    43
  • AutoMapper学习

    AutoMapper学习http://automapper.org/这是一款DTO的映射工具,AutoMapper是基于对象到对象约定的映射工具,它可以把复杂的对象模型转为DTO,或者其他的–那些让设计更合理更适于序列化、通信、传递消息的简单对象或者干脆就只是在领域层与应用层之间搭建一个简单的ACL防护层(就像DTO一样,用于代码的显示转换)来增加各自层的相互独立性。简单来说就是:就是根据A的模型和B的模型中的定义,自动将A模型映射为一个全新的B模型。前言VO、DTO、DO、PO、DAOVO(ViewObject.

    2025年8月20日
    2
  • 关于包围神经猫的想法实现

    关于包围神经猫的想法实现

    2022年1月5日
    46
  • SSRF漏洞讲解

    SSRF漏洞讲解SSRF漏洞讲解一、初识SSRF漏洞1.定义2.产生原理3.会导致的危害4.常见产生SSRF的地方5.常见缺失函数二、SSRF漏洞利用1.函数(1)file_get_contents(2)fsockopen()(3)curl_exec()2.协议(1)file协议(2)http协议(3)dict协议(4)gopher协议三、绕过1.绕过方式(1)检查IP是否为内网IP(2)Host获取与DNS绕过(3)通过各种协议(4)利用URL解析器滥用问题四、修复修复方案五、小结一、初识SSRF漏洞1.定义

    2022年6月25日
    30

发表回复

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

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