A construção básica da SpringMVC foi escrita no meu artigo anterior. Este artigo explica principalmente como usar o SpringMVC para fazer upload de arquivos nos formulários e fazer upload de vários arquivos simultaneamente.
Baixe o código fonte do projeto de upload de arquivos: demonstração
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:
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 de transferência (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:
4. Carregue vários arquivos.
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 do arquivo não pode estar vazio e seu comprimento é maior que 0 se (arquivos! arquivos [i]; // salve o arquivo savefile (arquivo); }} // redirecionar o retorno "Redirect: /list.html"; }Finalmente execute o projeto para fazer upload do arquivo:
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.