MultipartFile:
MultipartFile
É uma interface fornecida pelo Spring Framework para processar uploads de arquivos. Define uma série de métodos para obter informações e conteúdos relevantes dos arquivos carregados. MultipartFile
A seguir estão alguns métodos de interface comumente usados :
-
String getName()
: Obtenha o nome do campo de upload de arquivo no formulário. -
String getOriginalFilename()
: Obtenha o nome do arquivo original do arquivo enviado. -
String getContentType()
: obtenha o tipo de conteúdo (tipo MIME) do arquivo enviado. -
boolean isEmpty()
: determine se o arquivo carregado é um arquivo vazio. -
long getSize()
: Obtenha o tamanho do arquivo enviado, em bytes. -
byte[] getBytes()
: leia o conteúdo do arquivo carregado como uma matriz de bytes. -
InputStream getInputStream()
: obtém o fluxo de entrada do arquivo carregado, usado para ler o conteúdo do arquivo. -
void transferTo(File dest)
: salve o arquivo carregado no arquivo de destino especificado.
Os comumente usados incluem: getOriginalFilename(),该方法可以
obter o nome do arquivo original do arquivo carregado e, em seguida, determinar o tipo de arquivo ou executar o processamento do arquivo com base na extensão do nome do arquivo.
Exemplo:
@PostMapping("/upload")
public Result upload(String username, Integer age, MultipartFile image) throws IOException {
//获取原始文件名,例如:lalala.jpg
String originalFilename = image.getOriginalFilename();
//构造唯一的文件名(是文件名不会重复)--uuid(通用唯一识别码)
int index = originalFilename.lastIndexOf(".");//返回“.”最后一次出现的位置索引
String extname = originalFilename.substring(index);//获取上传文件的格式名,如“jpg”
String newFileName = UUID.randomUUID().toString() + extname;//对文件名进行拼接
log.info("新文件名:{}",newFileName);
//将文件存储在本地的磁盘目录当中,这里我设置为F:\image
image.transferTo(new File("F:\\image\\" + newFileName));
return Result.success();
}
No exemplo, primeiro use getOriginalFilename() para obter o nome do arquivo original e, em seguida, use lastIndexOf() para obter o índice de posição da última ocorrência do caractere especificado, obtendo assim seu nome de formato de arquivo "extname" e, em seguida, compare-o com o uuid exclusivo e obtido aleatoriamente.Splice para obter o novo nome do arquivo.
uso de lastIndexOf():
lastIndexOf
É um método da classe Java String java.lang.String
usado para localizar o índice da última ocorrência de um caractere ou substring especificado em uma string. Seu uso é o seguinte:
lastIndexOf(int ch)
: Encontre o índice da última ocorrência do caractere na string e retorne -1 se não for encontrado.lastIndexOf(int ch, int fromIndex)
: pesquise a partir da posição especificadafromIndex
o índice de posição da última ocorrência do caractere na string e retorne -1 se não for encontrado.lastIndexOf(String str)
: Encontre o índice da última ocorrência da substring na string e retorne -1 se não for encontrado.lastIndexOf(String str, int fromIndex)
: pesquise a partir da posição especificadafromIndex
o índice de posição da última ocorrência da substring na string e retorne -1 se não for encontrado.
Dentre eles, ch
representa o valor ASCII do caractere a ser encontrado, fromIndex
representa o índice de posição para iniciar a busca (contando a partir de 0) str
e representa a substring a ser buscada.
2)