Este artigo descreve a classe Ferramenta de upload e download de arquivos implementada por Java. Compartilhe -o para sua referência, como segue:
Esta é uma classe de ferramentas que usa o idioma Java para fazer upload e baixar arquivos no ambiente Eclipse. Como a classe de ferramenta de upload e download de arquivo C# introduzida antes, a fim de evitar a duplicação de nomes de arquivos no servidor, o nome do arquivo no servidor é usado na forma de "tempo do servidor (definido para milissegundos) + nome do arquivo + sufixo de arquivo"; Durante o processo de download, o Spring MVC ResponseEntity é usado para download de arquivos, que retorna um fluxo de bytes. Depois que o download for bem -sucedido, o caminho de economia do arquivo pode ser personalizado.
O código -fonte específico é o seguinte:
pacote com.utils; importar java.io.file; importar java.io.ioException; importar java.io.inputStream; importar java.io.unsupportEnCodingException; import java.text.simpledFormat; import java.util.date; org.springframework.http.httpheaders; importar org.springframework.http.httpstatus; importar org.springframework.http.mediaType; fileTeLoTh) e fileMoMeLoThPeLeTr (** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** FILDROTEL ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** FileS; diretório de acordo com o caminho. Se não houver diretório, crie o diretório * * @Param Path */ private estático void criado (caminho da string) {arquivo filedir = new File (caminho); if (!fileDir.exists() && !fileDir.isDirectory()) {// Determine whether the /download directory has fileDir.mkdir();// Create directory} } /** * Parse the file name into the upload path of the file* * @param fileName * @return File name uploaded to the server*/ public static String transPath(String fileName, String path) { CreateRir (caminho); Data data = new Date (); SimpledateFormat dateFormat = new SimpleDateFormat ("yyyymmddhhmmmssss"); // define para milissegundos string agorastr = dateFormat.format (data); String filenamestr = filename.substring (0, filename.lastIndexof (".")); // Remova o nome do arquivo do sufixo string sufix = filename.substring (nome de arquivo.LastIndexof ("") + 1); // sufixo se (não é (fIlename.Trim ()! = "). O arquivo não existe caminho + = "//" + filenameSt + NowStr + "." + sufixo; // Defina o caminho de retorno do caminho de upload; }/ ** * Lembre o download do arquivo * * @param filename * @param caminho * @return */ public estático ResponseEntity <byte []> DownloadFile (String filename, String Path) {try {filename = new String (FILENAME.GETBYTES ("GB2312 NOT)," ISO_88_1 "); (UnsupportEdEncodingException e1) {e1.printStackTrace (); } Arquivo de arquivo = novo arquivo (caminho); Cabeçalhos httpheaders = new httpheaders (); headers.setContentType (mediatype.application_octet_stream); headers.setContentDisPoitionFormData ("anexo", nome do arquivo); ResponseEntity <byte []> bytearr = null; tente {bytearr = new ResponseEntity <byte []> (fileutils.readfileTobyTearray (FILE), cabeçalhos, httpstatus.ok); } catch (ioexception e) {e.printStackTrace (); } retornar bytearr; } / ** * Escreva dados do fluxo de entrada para uma matriz de bytes * * @param em * @return * / public static byte [] inputStream2ByTearray (inputStream em, boolean isClose) {byte [] byteArray = null; tente {int total = in.Available (); byteArray = novo byte [total]; in.read (bytearray); } catch (ioexception e) {e.printStackTrace (); } finalmente {if (isClose) {try {in.close (); } Catch (Exceção E2) {System.out.println ("Falha Falha Falha"); }}} retornar bytearray; }}Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Resumo dos arquivos Java e habilidades de operação de diretório", "Tutorial sobre estruturas e algoritmos de dados Java e algoritmos", "Resumo das habilidades da operação Java Dom Node" e "Summary of Java cache Operação Skills"
Espero que este artigo seja útil para a programação Java de todos.