Dicas gentis
No sistema de gerenciamento de membros da Spring Boot, é necessário envolver a estrutura de primavera, a estrutura Springmvc, a estrutura de hibernação e o mecanismo de modelo TymEleaf. Portanto, você pode aprender esse conhecimento. Obviamente, não há problema em usá -lo diretamente se você começar, mas pode ser um pouco difícil se você envolver algumas exceções e princípios.
1. Parte do front-end
Na parte do front-end, addmember.html envia as informações do membro através do formulário Formulário, que inclui a função de upload da imagem (a operação de upload de arquivo está envolvida). O código na parte do formulário é o seguinte:
<form th: action = "@{/admin/addMember}" method = "post" Enctype = "Multipart/form-data" id = "addMember"> <div> <div> <span> selecione AVATAR FILE </span> <input id = "file" type "" file "name =" iconPath "(múltiplo" ("" PlaceLder = "spanGherCherTerch =" file "" type "" name = "iconPath" "" "" "" PlaceLder = " </div> <div> <!-<input type = "text" someholder = "Carregue um ou mais arquivos">-> <img id = "myimg" src = "Assets/iconPath/Common.jpg"/> </div> } function chanGetoop () {var file = id ("file"); if (file.value === '') {// Defina o id de imagem padrão ("myimg"). src = 'Assets/iconPath/Common.jpg'; } else {preimg ("arquivo", "myimg"); }} // Obtenha o URL da imagem de entrada [arquivo] Função importante getFileurl (fileId) {var url; var arquivo = id (fileId); var agente = navegator.useragent; if (agent.indexOf ("msie")> = 1) {url = file.value; } else if (agent.indexof ("firefox")> 0) {url = window.url.createObjecturl (file.files.item (0)); } else if (agent.indexof ("Chrome")> 0) {url = window.url.createObjecturl (file.files.item (0)); } retornar URL; } // Função de visualização depois de ler a imagem preimg (fileID, imgid) {var iMgpre = id (imgid); imgpre.src = getfileurl (fileId); } </script> </div> ......... </morm> Há uma nota aqui: porque envolve o upload de arquivo, enctype="multipart/form-data" precisa ser adicionado para formar, e o atributo de nome na entrada corresponde ao nome do parâmetro recebido do método de mapeamento do controlador no back-end.
2. Implementação de código de back -end
No back -end, a estrutura Springmvc pode processar arquivos e, em seguida, podemos receber os arquivos passando em parâmetros.
2.1 controlador lida com arquivos de entrada
O código é o seguinte:
@PostMapping ("/addMember") public string addmember (membro membro, string gradename, multipart -file, mapa <string, object> model) {// Processando o arquivo uploado tente {if (icon == null) // Primeiro, determine primeiro se o arquivo enviado é NULL Return "Error"; if (icon.getoriginalfilename (). Equals ("" ")) // Se o nome original do arquivo carregado for uma sequência vazia, está provado que o membro da imagem padrão.SETICONPATH ("/Assets/icon/Common.jpg "); // Defina como nossa imagem padrão Pathelse // Aqui, eu processo o arquivo multipart upload passando a classe de ferramenta de upload de arquivos que escrevi. O nome do arquivo é definido como o string membro.seticonpath (fileUploadutil.upload (icon, "/Assets/icon/", uuidrandomutil.get32uuid ())); } catch (Exceção e) {e.printStackTrace (); retornar "erro"; } ..... retornar "addmembersuccess"; }2.2 Classe de ferramentas FileUploadutil Salva arquivos
Depois que o arquivo multipart -arquivo do controlador for passado, ele precisa ser mais convertido em arquivo e salvo em disco, por isso o processei separadamente e entreguei o arquivo de entrada do controlador à classe FileUploadutil para processamento. O código específico é o seguinte:
classe pública FileUploadutil { /*** File de upload* @param multipartfile multipartFile* @param prefixpath prefixpath, em relação ao caminho em todo o projeto, não há necessidade de adicionar " /" no início do caminho* @param filename upload filename* @return the Final Relativo Path após o FILENNAME + Exceções*/upload de string estática pública (multipart -multartfile, string prefixpath, string filename) lança a exceção {// obtenha o caminho absoluto carregado string uploadpath = classutils.getDefaultClassLoader (). getResource (""). get () + "/static" + prefixpath; Arquivo de arquivo = novo arquivo (uploadPath); if (! file.exists ()) if (file.mkdirs ()) system.out.println ("diretório criado com sucesso"); // obtém o sufixName uploado = multipartfile.getoriginalfilename (). Substring (multipartfile.getoriginalfilename (). LastIndexOf (".")); // Crie um arquivo de arquivo finalizado = novo arquivo (uploadPath+FileName+SuffixName); multipartfile.transferto (arquivo); retornar prefixpath+filename+sufixName; }} Classutils no exposto acima é uma classe de ferramentas fornecida pela primavera e chamando o método getDefaultClassLoader().getResource("").getPath() é obter o caminho sob o projeto de classe atual.
O exposto acima faz parte do conteúdo sobre o upload de arquivo neste sistema. O código -fonte deste sistema é carregado no GitHub e baixado código -fonte.
Resumir
O acima exposto é a função de upload do arquivo do sistema de gerenciamento de membros da Spring Boot, apresentado a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!