如何在Spring Boot中同时上传多个文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Spring Boot中同时上传多个文件相关的知识,希望对你有一定的参考价值。

参考技术A @RequestMapping(value="/batch/upload", method=RequestMethod.POST)
public @ResponseBody
String handleFileUpload(HttpServletRequest request)
List<MultipartFile> files =((MultipartHttpServletRequest)request).getFiles("file");
MultipartFile file = null;
BufferedOutputStream stream = null;
for (int i =0; i< files.size(); ++i)
file = files.get(i);
if (!file.isEmpty())
try
byte[] bytes = file.getBytes();
stream =
new BufferedOutputStream(new FileOutputStream(new File(file.getOriginalFilename())));
stream.write(bytes);
stream.close();
catch (Exception e)
stream = null;
return "You failed to upload " + i + " =>" + e.getMessage();

else
return "You failed to upload " + i + " becausethe file was empty.";


return "upload successful";

这是后台的实现,如果需要前端的实现,请回复

java - 如何在Java Spring Boot上的firebase存储中获取上传文件的downloadURL

【中文标题】java - 如何在Java Spring Boot上的firebase存储中获取上传文件的downloadURL【英文标题】:How to get downloadURL of uploaded file in firebase storage on Java Spring Boot 【发布时间】:2022-01-13 11:35:47 【问题描述】:

在 Java Spring boot 中,我可以使用 firebase-admin sdk 获取签名的 url。

Bucket bucket = StorageClient.getInstance().bucket();
Storage storage = bucket.getStorage();
BlobInfo blobInfo = BlobInfo.newBuilder(bucket.getName(), storeFileName)
                .setContentType(fileType).build();
URL url = storage.signUrl(blobInfo, 5, TimeUnit.DAYS, Storage.SignUrlOption.withV4Signature());
                String signedPath = url.toString();

但我需要在 Java Spring Boot 中获取 downloadUrl 而不是签名 url,如下面的颤振代码。

// Flutter Code
Reference ref = FirebaseStorage.instance.ref().child(storePath);
String url = (await ref.getDownloadURL()).toString();

我无法在 Java Spring 中添加 Firebase-Storage sdk,只能使用移动设备。

https://mvnrepository.com/artifact/com.google.firebase/firebase-storage/11.0.2

【问题讨论】:

【参考方案1】:

用于 Cloud Storage 的 Admin SDK 是针对这些平台的 GCP 库的非常精简的包装器,它们确实不提供 getDownloadURL 方法。

与 GCP SDK 最接近的等价物是所谓的signed URL,它类似于下载 URL,但有一个过期时间戳。

如果这不能满足您的需求,您可以在文件上设置元数据属性以自行生成下载 URL,如以下答案所示:Get Download URL from file uploaded with Cloud Functions for Firebase。

【讨论】:

以上是关于如何在Spring Boot中同时上传多个文件的主要内容,如果未能解决你的问题,请参考以下文章

java - 如何在Java Spring Boot上的firebase存储中获取上传文件的downloadURL

如何在不使用GridFSTemplate的情况下在spring boot应用程序中上传和检索mongodb中的文件?

如何在spring-boot中添加多个application.properties文件?

如何在 Spring Boot 中将大文件上传到 ftps 服务器?

如何在IDEA启动多个Spring Boot工程实例

如何同时运行 Spring Boot 测试?