大家好,又见面了,我是你们的朋友全栈君。
一. 前言
通过之前的博客,基本上已经将各个框架上传文件的功能逻辑理清楚,有文件下载肯定就需要有文件上传,那么接下来会跟大家一起分享各个框架上传文件的功能代码;
那么,今天我们将重点放在各个框架适用的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账号...