JAVA implementa a interface MultipartFile envolvida no upload de arquivos

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. MultipartFileA seguir estão alguns métodos de interface comumente usados :

  1. String getName(): Obtenha o nome do campo de upload de arquivo no formulário.

  2. String getOriginalFilename(): Obtenha o nome do arquivo original do arquivo enviado.

  3. String getContentType(): obtenha o tipo de conteúdo (tipo MIME) do arquivo enviado.

  4. boolean isEmpty(): determine se o arquivo carregado é um arquivo vazio.

  5. long getSize(): Obtenha o tamanho do arquivo enviado, em bytes.

  6. byte[] getBytes(): leia o conteúdo do arquivo carregado como uma matriz de bytes.

  7. InputStream getInputStream(): obtém o fluxo de entrada do arquivo carregado, usado para ler o conteúdo do arquivo.

  8. 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.Stringusado 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 especificada fromIndexo í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 especificada fromIndexo índice de posição da última ocorrência da substring na string e retorne -1 se não for encontrado.

Dentre eles, chrepresenta o valor ASCII do caractere a ser encontrado, fromIndexrepresenta o índice de posição para iniciar a busca (contando a partir de 0) stre representa a substring a ser buscada.

2)

Guess you like

Origin blog.csdn.net/LuoluoluoluoYan/article/details/132093288