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


相关推荐

  • 自旋锁和互斥锁区别在哪_互斥锁的实现

    自旋锁和互斥锁区别在哪_互斥锁的实现POSIXthreads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(ThreadSynchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共享的临界区(CriticalSection)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机制:…

    2025年8月20日
    3
  • pycharm2021.8.3永久激活码[最新免费获取]

    (pycharm2021.8.3永久激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月25日
    75
  • Xshell安装docker「建议收藏」

    Xshell安装docker「建议收藏」docker基本组成镜像(image):docker镜像好比一个模板,可以通过这个模板创建容器服务,例如:tomcat镜像===>run===>tomcat01容器(提供服务器)通过这个镜像可以创建多个容器(最终服务或项目在容器中运行)容器(container):docker利用容器技术,独立运行一个或一组应用,通过镜像来创建。启动、停止、删除基本命令目前就可以把这个容器理解为就是一个简易的linux系统仓库(repository):存放镜像的地方,类似maven中央仓库仓库

    2025年10月11日
    5
  • datagrip2020激活码【中文破解版】

    (datagrip2020激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    1.3K
  • 离散实验 判断集合之间是单射,满射还是双射

    离散实验 判断集合之间是单射,满射还是双射通过C++实现集合间映射关系判断思路:创建判断两个集合之间是否是单射,满射,双射的函数,同时也分别创建三个函数,里面存放两集合间的映射关系,再通过刚刚创建的判断函数,进行验证是否满足条件。涉及的数学知识1.单射:设f是由集合A到集合B的映射,如果所有x,y∈A,且x≠y,都有f(x)≠f(y),则称f为由A到B的单射。2.满射:如果每个可能的像至少有一个变量映射其上(即像集合B中的每个元素在A中都有一个或一个以上的原像),或者说值域任何元素都有至少有一个变量与之对应,那这个映射就叫做满射。3.双

    2022年5月1日
    118
  • pycharm安装pandas「建议收藏」

    pycharm安装pandas「建议收藏」在控制台输入pipinstallpandas后出现Requirementalreadysatisfied之后按照下面的步骤安装就可以了。安装完成后importpandas就不会报错了。

    2022年8月25日
    6

发表回复

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

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