Aprovado: Fortect
Nos últimos dias, alguns usuários individuais têm enfrentado um erro ao postar arquivos PDF usando Servlet. Esse problema pode vir à tona por vários motivos. Agora vamos lidar com eles.
Este tutorial Java orienta o público nas etapas de criação de código para o melhor servlet Java que transfere um arquivo desse servidor para o cliente (navegador da web). O usuário pode baixar o arquivo clicando no link de um site que aponta para a URL do servlet. Seria útil que implementasse a função de obter um arquivo por último um aplicativo da web usando um servlet Java. As etapas típicas são as seguintes:
- Reproduz o arquivo no servidor FileInputStreamclass.
- Encontre o tipo MIME que você vê, o arquivo para navegar:
-
-
- Obtenha o ServletContext indica o método do processo getServletContext () servlet.Call.
- Definitivamente getMimeType (arquivo de string) na entidade ServletContext quando você precisa obter o tipo MIME deste arquivo.
-
-
- Defina os seguintes dados para o objeto HttpResponse:
-
-
- Defina o tipo de conteúdo como o MIME extraído, é claro, especifique gritando setContentType (String). Isso informa ao navegador que digite a palavra qual é a resposta.
- Defina um novo conteúdo da resposta chamando esse método setContentLength (int).
-
-
- Obtenha o objeto de resposta OutputStream sem dificuldades.
- Leia matrizes de bytes do fluxo de entrada verdadeiro. Em seguida, um arquivo, gravando-os, você pode um OutputStream. Repita até esgotar os bytes disponíveis, conte até (fim do arquivo).
- Feche o OutputStream e o fileinputstream.
- O mapeamento MIME é diferente, o que é sem dúvida declarado pelo contêiner do servlet. Para ilustrar, o Tomcat declara um mapeamento MIME na área Mapeamento padrão de tipos MIME no arquivo de dados:
- A rotina getMimeType () retorna null se não houver mapeamento MIME projetado para o arquivo especificado. Nesse caso, é uma boa ideia ter certeza de tensionar o tipo MIME para normalmente binário:
Como fazer download do arquivo vindo do servidor usando Servlet?
Aqui você cria um exemplo com link de como baixar um arquivo do servlet de compra de hospedagem. O arquivo pode ser quase todo tipo, como imagem, PDF, vídeo, música e outros. Como funciona? Primeiro, defina o tipo de conteúdo comercial para application / octet-stream. Agora organizado o cabeçalho Content-Disposition para Attachment; nome do arquivo implica em fileLocation.
if (mimeType == null)mimeType implica aplicativo e fluxo de octeto;
- Por padrão, o navegador processa quase a resposta com base no tipo de conteúdo definido nos cabeçalhos HTTP. Por exemplo, tende a exibir uma imagem quando a resposta tende a ser um arquivo de imagem ou abrir um novo leitor de e-book quando a resposta é um documento PDF, etc. o instigador ainda está carregando, a maioria das pessoas pode adicionar este cabeçalho se precisar interagir:
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.
Responder a.setHeader ("Content-Disposition", "anexo; nome do arquivo significa " MeuArquivo.mp4 "");
pacote net.codejava;importar arquivo java.io;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;seção pública DownloadFileServlet estende HttpServletprotected keep doGet (solicitação HttpServletRequest,HttpServletResponse retorna a resposta) ServletException, IOException// especifica o arquivo de entrada como um caminho absolutoA linha de telefone filePath implica "E: /Test/Download/MYPIC.JPG";File = downloadFile novo arquivo de música (filePath);FileInputStream inStream = new FileInputStream (downloadFile);// se você deseja usar um caminho relativo para o primário de uma palavra:A linha é relativePath implica getServletContext (). GetRealPath ("");System.out.println ("relativePath =" + relativePath);// termina ServletContextServletContext-Context = getServletContext ();// Obtenha o tipo MIME anexado ao arquivoA string mimeType corresponde a context.getMimeType (filePath);if (mimeType == null)// Definido para ajudá-lo a sofrer de tipo binário quando o mapeamento MIME é detectadomimeType não é necessariamente o mesmo que "application / octet-stream";System.out.println ("Tipo MIME:" MimeType);// + modificar a respostaresponse.setContentType (mimeType);response.setContentLength ((int) downloadFile.length ());// forçar downloadString headerKey = "Content-Disposition";A string parece indicar headerValue String.format ("attachment; filename = "% ise "", downloadFile.getName ());response.setHeader (headerKey, obtenha headerValue);// liderança final do fluxo de RespostasOutputStream outStream = response.getOutputStream ();buffer byte [] significa byte novo inovador [4096];int bytesRead = -1;while ((bytesRead implica inStream.read (buffer))! implica -1)outStream.write (buffer, 0, bytesRead);inStream.close ();outStream.close ();
Configure o mapeamento de URL para este servlet no arquivo do descritor de implantação do word wide web na Internet. Conforme documentado no arquivo XML:
Este stub de servlet do cliente se aplica DownloadFileServlet DownloadFileServlet net.codejava.DownloadFileServlet DownloadFileServlet / DownloadFileServlet
@WebServlet (" / DownloadFileServlet ")public class Extended arquivo publicar servlet HttpServlet// código deste servlet ...
Podemos trocar o servlet com o seguinte formato de URL:
Qual é o conteúdo formato de um arquivo servlet?
É um envio de servlet que lê o conteúdo de um arquivo e também o grava em um fluxo que pode existir enviado em resposta. Por esse motivo, solicitamos notificar o servidor enquanto corrigimos o tipo de conteúdo para APLICATIVO / OCTET-STREAM. valor javax.servlet.http. *;
O navegador deve solicitar que alguns comerciantes da Internet baixem o arquivo, conforme mostrado em qualquer captura de tela a seguir:
- Exemplo de carregamento por arquivo de servlet Java do banco de dados
- Use HttpURLConnection para recuperar um arquivo de um URL HTTP específico.
- Instruções de exportação e exemplos de arquivos Java-FTP
- Aplicativo Swing para CDs de arquivo de servidor HTTP com indicador concluído
- Método Swing para baixar arquivos de um dispositivo FTP por meio de um barra de progresso
- Amostra de aplicativo de download de arquivo Spring MVC
- Amostra de aplicativo de download de arquivo Struts
Outros guias de servlet Java:
Como retornar dados PDF de um Servlet Java?
O tutorial Java Servlet PDF mostra como retroceder dados PDF de um Java Servlet gigante. Usamos a biblioteca do iText para que você seja eficaz com PDF. O aplicativo da web é literalmente aplicado ao servidor Tomcat. Portable Document Format (PDF) é um formato de arquivo usado para separar arquivos pessoais de software de aplicativo, hardware e sistemas de desempenho.
- Primeiros passos com Java Servlet para iniciantes (XML)
- Java Servlet para iniciantes (notas)
- Processamento de dados de variantes HTML com um servlet Java
- Como isso pode usar uma sessão em um aplicativo da web Java
- Como lidar com erros em Java Web.xml para web aplicativos
< li> Como usar cookies em relação a um aplicativo da web Java
- Detalhes
- Escrito por Nam Ha Min
- Atualizado em 24 de maio de 2020 & nbsp | & nbsp Imprimir e-mail
Sobre o autor:
nam Minh é um Java certificado Programador (SCJP e SCWCD). Ele começou com o Java dos dias do Java 1.4 e estava ávido por Java. Faça amizade com ele no Facebook e assista a vídeos Java no YouTube.
Acelere o desempenho do seu computador agora com este simples download.