java文件上传到服务器 java实现文件的上传与下载

java上传文件到服务器java实现文件上传的三种方式

一、需求

在项目开发中,遇到需要将页面上的文件上传至本地保存,之后这个上传的文件还能进行访问,后台是Spring Boot框架搭建的,只需将文件上传至Spring Boot项目编译之后的classes\static\文件夹中即可。如下图:

二、文件上传

1、定义文件上传接口方法

//在pom.xml引入spring-boot-starter-web依赖,即可导包import org.springframework.web.multipart.MultipartFile;// fileRoot:上传文件保存的根路径String upload(MultipartFile file, String fileRoot) throws IOException;2、文件上传接口方法实现

@Overridepublic String upload(MultipartFile file, String fileRoot) throws IOException{ prepareFilePath(fileRoot);//获取上传文件的原文件名 String fileName= file.getOriginalFilename();//规则化之后的文件上传根路径 String normalizeFileRoot= getNormalizeFileRoot(fileRoot);//根据路径和文件名创建目标文件 File targetFile= new File(normalizeFileRoot, fileName);//如果目标文件存在,删除 if(targetFile.exists()) targetFile.delete();//将目标文件进行转移 file.transferTo(targetFile); return String.format("%s\\%s", normalizeFileRoot, fileName);}/** fileRoot:上传文件保存的根路径此方法是准备文件上传的路径,如果路径不存在,即创建*/private void prepareFilePath(String fileRoot){ File file= new File(Helper.normalizePath(fileRoot)); if(!file.exists()) file.mkdirs();}/**该方法主要对文件路径进行规则化,如:D:\\\360Browser\///360Chrome\\//,像这种路径就不正确,此方法可以将路径规则化为:D:\360Browser\360Chrome*/private String getNormalizeFileRoot(String fileRoot){ return Helper.normalizePath(fileRoot);}Helper工具类中的路径规则化方法

public static String normalizePath(String path){ String result= path.replaceAll("/+", Matcher.quoteReplacement(File.separator)); return result.replaceAll("\\\\+", Matcher.quoteReplacement(File.separator));}3、Controller

@PostMapping("/upload")public RequestResult upload(@RequestParam("file") MultipartFile file) throws IOException{ Config config= configService.get("Upload","FileRoot"); String filePath= busService.upload(file, config.getValue()); return RequestResult.success(filePath);}三、测试

1、使用Postman进行文件上传测试

2、在浏览器中输入定位文件.doc,可以将文件下载到本地

java文件上传到某一台指定服务器怎么弄

要将Java文件上传到指定服务器,可以使用以下步骤:

使用Java中的Socket类或Java NIO(New IO)库来建立网络连接。

在连接上发送文件,可以使用Java中的FileInputStream或FileReader类从本地文件系统读取文件内容,然后使用OutputStream或Writer类将文件内容写入网络连接。

在服务器端,使用Java中的ServerSocket类或Java NIO库来接收网络连接。

在服务器端,读取网络连接中的文件内容,可以使用Java中的InputStream或Reader类从网络连接中读取文件内容,然后使用Java中的FileOutputStream或FileWriter类将文件内容写入服务器本地文件系统。

关闭网络连接和文件流。

需要注意的是,要确保服务器端有足够的权限来访问文件系统,并且要正确处理文件名和路径,以避免安全问题和文件冲突。

JAVA 把文件传到服务器...

文件上传到A以后放到服务器上面然后他就有一个绝对的访问路径也就是对应一个绝对的url这样就好办了

Java提供了对URL访问和大量的流操作的的API,可以很容易的完成对网络上资源的存取,下面的代码段就完成了对一个网站的资源进行访问:

......

destUrl="";

//假设你把文件放到webroot底下的java文件里面

url= new URL(destUrl);

httpUrl=(HttpURLConnection) url.openConnection();

//连接指定的网络资源

httpUrl.connect();

//获取网络输入流

bis= new BufferedInputStream(httpUrl.getInputStream());

......

得到流后下面你自己想怎么操作就怎么操作了

对于怎么得到资源的连接地址这个方法很多你可以专门提供一个Servlet获取到输出的流后 Response.write转门提供服务器已上传的文件文件名可以一天位单位返回

客户端用与上面同样的方法得到文件名后拆分然后再继续循环调用上面的方法下载文件就ok了

呵呵希望可以帮助到你

阅读剩余
THE END