使用MultipartFile修改文件名

一、MultipartFile概述

MultipartFile是Spring MVC提供的一種接口,可用於在Web應用程序中處理多部分請求,其中包括文件上傳。當用戶上傳文件時,服務器通過此接口將文件讀入內存,您可以使用此對象對文件進行操作,例如修改文件名。

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFileUpload(@RequestParam("file") MultipartFile file,
                               RedirectAttributes redirectAttributes) {
    String fileName = StringUtils.cleanPath(file.getOriginalFilename());
    try {
        //對文件進行操作
        //...
        return "redirect:/success";
    } catch (Exception ex) {
        redirectAttributes.addFlashAttribute("message",
                "Your " + fileName + " is wrong!");
        return "redirect:/failure";
    }
}

二、修改文件名

通過MultipartFile獲取文件名,你可以對文件名進行操作,例如添加前綴或後綴,修改文件類型等。

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFileUpload(@RequestParam("file") MultipartFile file,
                               RedirectAttributes redirectAttributes) {
    String fileName = StringUtils.cleanPath(file.getOriginalFilename());//獲取文件名
    String newFileName = "new_" + fileName;//新文件名
    try {
        //對文件進行操作
        //...
        return "redirect:/success";
    } catch (Exception ex) {
        redirectAttributes.addFlashAttribute("message",
                "Your " + fileName + " is wrong!");
        return "redirect:/failure";
    }
}

三、更改文件類型

你也可以通過修改文件名來更改文件類型。

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFileUpload(@RequestParam("file") MultipartFile file,
                               RedirectAttributes redirectAttributes) {
    String fileName = StringUtils.cleanPath(file.getOriginalFilename());//獲取文件名
    String newFileName = fileName.replaceAll("\\.\\w+$", ".jpg");//修改文件類型為jpg
    try {
        //對文件進行操作
        //...
        return "redirect:/success";
    } catch (Exception ex) {
        redirectAttributes.addFlashAttribute("message",
                "Your " + fileName + " is wrong!");
        return "redirect:/failure";
    }
}

四、添加時間戳

為了防止文件名重複,你可以在文件名中添加時間戳。

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFileUpload(@RequestParam("file") MultipartFile file,
                               RedirectAttributes redirectAttributes) {
    String fileName = StringUtils.cleanPath(file.getOriginalFilename());//獲取文件名
    String newFileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())
            + "_" + fileName;//添加時間戳
    try {
        //對文件進行操作
        //...
        return "redirect:/success";
    } catch (Exception ex) {
        redirectAttributes.addFlashAttribute("message",
                "Your " + fileName + " is wrong!");
        return "redirect:/failure";
    }
}

五、使用UUID作為文件名

UUID是唯一標識符,可以用作文件名,配合文件類型後綴,可以確保文件名的唯一性,避免文件名衝突。

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFileUpload(@RequestParam("file") MultipartFile file,
                               RedirectAttributes redirectAttributes) {
    String fileType = StringUtils.getFilenameExtension(file.getOriginalFilename());//獲取文件類型
    String newFileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + fileType;//使用UUID作為文件名
    try {
        //對文件進行操作
        //...
        return "redirect:/success";
    } catch (Exception ex) {
        redirectAttributes.addFlashAttribute("message",
                "Your " + fileName + " is wrong!");
        return "redirect:/failure";
    }
}

原創文章,作者:JIEP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131150.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JIEP的頭像JIEP
上一篇 2024-10-03 23:43
下一篇 2024-10-03 23:43

相關推薦

  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Python獲取當前文件名

    一、通過sys模塊獲取當前文件名 Python的sys模塊提供了一種獲取當前文件名的方法。通過sys模塊可以獲取執行Python腳本的相關信息,並且可以直接獲取當前文件的所有信息。…

    編程 2025-04-25
  • Python文件名命名規範詳解

    Python是一種廣泛使用的編程語言,能夠廣泛應用於Web開發、數據分析、機器學習等領域。在Python開發中,文件名是非常重要的一個方面,它不僅能夠幫助編程者更好地組織文件,還能…

    編程 2025-02-25
  • 詳解curl-o文件名

    一、curl文件 curl是一款強大的跨平台網絡請求工具,它支持多種協議,包括HTTP、HTTPS、FTP等,同時也支持POST、Cookie等功能。使用curl可以模擬請求,實現…

    編程 2025-02-17
  • inputstream獲取文件名的使用方法

    一、從InputStream中獲取文件名是什麼意思? InputStream代表一個輸入流,它是與一個“輸入源”相關聯的。這個“輸入源”可以是一個文件、一個網絡連接、一個壓縮文件等…

    編程 2025-02-01
  • 基於Springboot的MultipartFile多文件上傳

    一、MultipartFile簡介 MultipartFile是Springframework中的接口,它代表了上傳文件的數據類型。MultipartFile允許我們獲取文件名、大…

    編程 2025-01-27
  • Linux改文件名命令詳解

    一、基本介紹 在Linux系統中,改文件名命令包括mv、cp和rename三個命令,其中mv是最常用的命令,可以重命名或移動文件。 mv命令的語法格式為:mv [選項] 源文件或目…

    編程 2025-01-27
  • Python獲取文件名不含後綴名詳解

    一、獲取文件名不含後綴名的作用 在實際開發中,經常需要從文件名中獲取文件的基本信息,例如文件名、文件大小、文件類型等等。而獲取文件名不含後綴名就是獲取文件的主要信息之一。 為什麼獲…

    編程 2025-01-20
  • Java獲取文件名的方法詳解

    一、使用File類獲取文件名 Java中可以使用java.io.File類獲取文件名。File類提供了多種方法來獲取文件名。其中,getName()方法可以獲取文件名,例如: Fi…

    編程 2025-01-14
  • Ubuntu命令行下批量修改文件名的最佳實踐

    一、選取需要批量修改的文件 首先,我們需要確定需要修改文件名字的文件所在目錄。在Ubuntu命令行下,可以使用cd命令進入到目標目錄。然後,輸入ls命令查看目錄下所有的文件及文件夾…

    編程 2025-01-13

發表回復

登錄後才能評論