Java 从rest参数创建目录
我想在一个主根目录下创建目录。我尝试了以下代码:Java 从rest参数创建目录,java,Java,我想在一个主根目录下创建目录。我尝试了以下代码: private static String UPLOADED_FOLDER = "/opt/"; @PostMapping public ResponseEntity<StringResponseDTO> uploadData(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes, @RequestParam("id") Int
private static String UPLOADED_FOLDER = "/opt/";
@PostMapping
public ResponseEntity<StringResponseDTO> uploadData(@RequestParam("file") MultipartFile file, RedirectAttributes redirectAttributes, @RequestParam("id") Integer merchant_id) throws Exception {
InputStream inputStream = file.getInputStream();
String originalName = file.getOriginalFilename();
String name = file.getName();
String contentType = file.getContentType();
long size = file.getSize();
LOG.info("name: " + name);
LOG.info("contentType: " + contentType);
LOG.info("size: " + size);
try {
byte[] bytes = file.getBytes();
File newFile = new File(UPLOADED_FOLDER + merchant_id, file.getOriginalFilename());
LOG.info("New file location: " + newFile.getAbsolutePath()); //Log the path
Files.write(newFile.toPath(), bytes);
} catch (IOException e) {
e.printStackTrace();
}
return ResponseEntity.ok(new StringResponseDTO(originalName));
}
我是否需要将编号
商户id
转换为字符串?我认为会引发异常,因为目录/opt/13
不存在<代码>文件。写入将创建文件,但不创建父目录。以下是文件的一部分。编写文档:
options参数指定如何创建或打开文件。如果不存在任何选项,则此方法的工作方式与存在CREATE、TRUNCATE_EXISTING和WRITE选项一样。换句话说,它打开文件进行写入,如果文件不存在,则创建该文件,或者最初将现有的常规文件截断为0大小
更换以下线路
File newFile = new File(UPLOADED_FOLDER + merchant_id, file.getOriginalFilename());
LOG.info("New file location: " + newFile.getAbsolutePath()); //Log the path
Files.write(newFile.toPath(), bytes);
与
我在14.58.59.png获得java.nio.file.FileSystemException:/opt/10/Screenshot 2019-08-01:是一个目录如果我发送相同的id参数会发生什么?它将覆盖内容?mkdirs()只会创建不存在的目录,而不会触及已存在的文件夹。所以你已经储存的内容是安全的。最后一个任务。你能告诉我如何在春季重新制作收到的文件吗?我是否理解正确,你想让用户从/opt下载他们的文件?您应该检查或创建新问题。
File newFile = new File(UPLOADED_FOLDER + merchant_id, file.getOriginalFilename());
LOG.info("New file location: " + newFile.getAbsolutePath()); //Log the path
Files.write(newFile.toPath(), bytes);
File directory = new File(UPLOADED_FOLDER, merchant_id.toString());
directory.mkdirs();
File newFile = new File(directory, file.getOriginalFilename());
LOG.info("New file location: " + newFile.getAbsolutePath()); //Log the path
Files.write(newFile.toPath(), bytes);