Este exemplo compartilha o código específico do SpringMVC usando o MultipartFile para implementar o upload de arquivos para sua referência. O conteúdo específico é o seguinte
1. Arquivo de configuração
SpringMVC usa o multipartfile para fazer upload de arquivos, então precisamos primeiro configurar o multipartresolver: para processamento de arquivo no formulário
<!-Configure multipartresolver composmultipartresolver para upload de arquivo usando primavera-> <feijão: bean id = "multipartresolver" p: defaultEncoding = "utf-8" p: maxuploadSize = "5400000" p: uploadtempdir = "fileUPload/temp"
Os atributos são explicados em detalhes:
defaultEncoding = "UTF-8" é o formato de codificação solicitado, ISO-8859-1 padrão
maxuploadsize = "5400000" é o tamanho do arquivo carregado, em bytes
UPLOUPTEMPDIR = "FILEUPLOAD/TEMP" é o caminho temporário para fazer upload do arquivo
2. Crie um formulário de upload simples
<body> <h2> Instância de upload de arquivo </h2> <formulário de forma = "fileUpload.html" method = "post" rtype = "multipart/form-data"> selecione Arquivo: <input type = "name" name = "file"> <input Type = "subit" value = "submit"> </form> </body>
Observe que você deve adicionar ENCTYPE = "Multipart/Form-Data" à tag de formulário para indicar que o formulário precisa processar o arquivo. Esta é a coisa mais básica. Muitas pessoas esquecem o erro de procurar o programa após um erro de upload, mas esquece esse ponto.
3. Escreva a classe de controle de upload
1. Crie uma classe de controle: FileUploadController e uma página que retorna a lista de resultados.jsp
2. Escreva a ação para enviar o formulário
// Obtenha a solicitação da configuração padrão da primavera através da anotação automática da Spring @AUTOWIRED PRIVADO HTTPSERVletRequest solicitação; / *** * Faça upload do arquivo com a anotação @RequestParam para especificar que o arquivo no formulário é multipartFile * * @Param File * @return */ @requestMapping ("fileUpload") public string (///////////////////////// file) segmentn) {File! filepath = request.getSession (). getServletContext (). getRealPath ("/") + "upload/" + file.getoriginalfileName (); // transferto (novo arquivo (filepath)); } catch (Exceção e) {e.printStackTrace (); }} // redirecionar o retorno "Redirect: /list.html"; }/*** * Leia todos os arquivos no arquivo carregado e retorne * * @return */@RequestMapping ("List") publicAndView list () {string filepath = request.getSession (). GetServletContext (). GetRealPath ("/") + "upload/"; ModelAndView MAV = new ModelAndView ("Lista"); FILE UPLOPLETDEST = novo arquivo (filepath); String [] filenames = uploadDest.List (); for (int i = 0; i <nomes de arquivo.length; i ++) {// imprima o nome do arquivo System.out.println (nomes de fileS [i]); } retornar mav; } 3. Use Springmvc Anotation RequestParam para especificar parâmetros de arquivo no formulário;
4. Especifique um caminho do projeto da web para salvar arquivos
5. Método transferto (arquivo de destes) do arquivo multipart para o caminho especificado.
Neste ponto, o upload básico do arquivo acabou.
Alguns métodos comumente usados da classe MultipartFile:
String getContentType () // Obtenha o tipo de mímica do arquivo
InputStream getInputStream () // e depois vá para o streaming de arquivo
String getName () // Obtenha o nome do componente de arquivo no formulário
String getoriginalFilename () // Obtenha o nome original do arquivo carregado
long getSize () // Obtenha o tamanho do byte do arquivo, byte unitário
boolean isEmpty () // está vazio
Void Transferto (arquivo dest) // Salvar em um arquivo de destino.
4. Vários arquivos upload
O upload de vários arquivos é realmente muito simples. Assim como o upload de outros mesmos parâmetros, como a caixa de seleção, use o mesmo nome no formulário e, em seguida, defina a classe de parâmetros multipart -arquivo como uma matriz na ação.
Próximo implemento:
1. Crie um formulário que envie vários arquivos:
<body> <h2> Carregue várias instâncias de arquivo </h2> <formulário de forma = "filesUpload.html" method = "post" Enctype = "multipart/form-data"> <p> Selecione FILE: <input Type = "FILE" name = "Arquivos"> <P> Arquivo: <input Type = "name =" "FILIÇÃO" <input type = "submit" value = "submit"> </mand> </body>
2. Escreva uma ação para processar o formulário e escreva um método separado para salvar o arquivo para facilitar o compartilhamento:
/**** Salvar arquivo* arquivo @param* @return*/private boolean savefile (arquivo multipart -arquivo) {// determinar se o arquivo está vazio if (! File.isempty ()) {try {// arquivo salvar path string filepath = request.getSession (). // transferto (novo arquivo (filepath)); retornar true; } catch (Exceção e) {e.printStackTrace (); }} retornar false; } 3. Escreva ação: @RequestMapping ("fileSupload") public String filesUpload (@RequestParam ("arquivos") multipartfile [] arquivos) {// julgar a matriz de arquivos não pode estar vazia e seu comprimento é maior que 0 se (files! 0; i <files.length; i ++) {arquivo multipart de arquivo = arquivos [i]; // salve o arquivo savefile (arquivo); }} // redirecionar o retorno "Redirect: /list.html"; }O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.