Approvato: Fortect
Negli ultimi giorni, alcuni dei nostri clienti hanno riscontrato un errore durante il caricamento di file PDF utilizzando Servlet. Questo problema può sorgere per diversi motivi. Ora ci occuperemo di chi li ha.
Questo tutorial Java ti guida attraverso i passaggi per creare codice per un servlet Java che trasferisce un file da una macchina al tuo client (browser web). Chi lo indossa può scaricare il file facendo clic su un ottimo collegamento al sito Web che punta all’URL fuori dal servlet. Sarebbe utile iniziare a utilizzare la funzione di ottenere un file in qualsiasi applicazione Web utilizzando un servlet Java. Gli approcci tipici sono i seguenti:
- Riproduci il file sul server FileInputStreamclass.
- Trova il tipo MIME del registro da navigare:
-
-
- Ottieni il ServletContext tramite la procedura getServletContext () servlet.Call metodo.
- Sicuramente getMimeType (file stringa) nell’entità ServletContext per ottenere il tipo MIME di questo file.
-
-
- Definisci le seguenti informazioni nell’oggetto HttpResponse:
-
-
- Imposta il tipo di contenuto per un MIME estratto, ovviamente, specificalo suonando setContentType (String). Questo dice al tipo di browser qual è la risposta principale.
- Imposta le informazioni della risposta chiamando il metodo setContentLength (int).
-
-
- Ottieni l’oggetto risposta OutputStream senza domande.
- Legge gli array di byte dall’esatto inserimento nel flusso. Quindi un file, scrivendoli su un nuovo buon OutputStream. Ripeti finché non esaurisci i byte disponibili, conta fino a (fine del file).
- Chiudi sia OutputStream che fileinputstream.
- La mappatura MIME è diversa, annunciata dal contenitore servlet. Per illustrare ciò, Tomcat dichiara una mappatura MIME nell’area Mappatura predefinita dei tipi MIME nel file:
- La routine getMimeType() restituisce zero se non è presente alcuna mappatura MIME per l’intero file specificato. In questo caso, è un’idea ideale assicurarsi di forzare il nostro tipo MIME su normalmente binario:
Come scaricare il file da internet usando Servlet?
Qui crei un esempio di consigli su come scaricare un file dal servlet personalizzato del server. Il file può essere di qualsiasi tipo, come immagini, PDF, video, musica e molti altri. Come funziona? Innanzitutto, imposta il tipo felice del sito Web su application / octet-stream. Ora imposta queste intestazioni Content-Disposition su Allegato; nomefile = posizionefile.
indipendentemente dal fatto che (mimeType == null)mimeType implica application / octet-stream;
- Per impostazione predefinita, il browser elabora ogni rimedio in base al tipo di contenuto impostato nelle nostre intestazioni HTTP. Ad esempio, tende a mostrare un’immagine quando è probabile che la risposta sia un file di immagine o ad aprire un lettore di e-book quando la risposta è una documentazione PDF, ecc. l’istigatore sta ancora caricando, potremmo aggiungere questa intestazione se bisogno di risposta:
Approvato: Fortect
Fortect è lo strumento di riparazione PC più popolare ed efficace al mondo. Milioni di persone si affidano a milioni di persone per mantenere i loro sistemi in esecuzione veloci, fluidi e privi di errori. Grazie alla sua semplice interfaccia utente e al potente motore di scansione, Fortect trova e risolve rapidamente un'ampia gamma di problemi di Windows, dall'instabilità del sistema e problemi di sicurezza alla gestione della memoria e ai colli di bottiglia delle prestazioni.
Rispondi a.setHeader ("Content-Disposition", "allegato; il nome del file implica " MyFile.mp4 "");
pacchetto net.codejava;importa il file 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;sezione pubblica DownloadFileServlet estende HttpServletprotetto evitare doGet (richiesta HttpServletRequest,HttpServletResponse restituisce la risposta) ServletException, IOException// specifica il file slot come percorso assolutoLa riga filePath significherà "E: /Test/Download/MYPIC.JPG";File = downloadFile nuovo file (filePath);FileInputStream inStream equivale a nuovo FileInputStream (downloadFile);// se vuoi che utilizzerà un percorso relativo alla radice tra una parola:La riga è relativePath = getServletContext(). GetRealPath ("");System.out.println ("relativePath =" + relativePath);// ottiene ServletContextServletContext-Context = getServletContext ();// Ottieni il tipo mime del file attualeLa stringa mimeType corrisponde a context.getMimeType (filePath);if (mimeType == null)// Definito per aiutarti con l'ordinamento binario quando viene rilevata la mappatura MIMEmimeType non è lo stesso di "application / octet-stream";System.out.println ("Tipo MIME:" TipoMime);// + modifica la rispostaresponse.setContentType (mimeType);response.setContentLength ((int) downloadFile.length ());// scarica il ceppoString headerKey = "Content-Disposition";La stringa significherebbe headerValue String.format ("allegato; filename = "% s "", downloadFile.getName ());response.setHeader (headerKey, ottieni headerValue);// risultato finale tra gli stream AnswersOutputStream outStream equivale a response.getOutputStream ();byte [] buffer significa nuovo byte [4096];int bytesRead = -1;while ((bytesRead implica inStream.read (buffer))! implica -1)outStream.write (buffer, 0, bytesRead);inStream.close ();outStream.close ();
Configurare la mappatura URL per questo servlet nel file descrittore di utilizzo web su Internet. Come mostrato il file XML:
Questa immagine stub servlet client DownloadFileServlet DownloadFileServlet net.codejava.DownloadFileServlet DownloadFileServlet / DownloadFileServlet
@WebServlet ("/ DownloadFileServlet")public class Servlet di caricamento file esteso HttpServlet// il codice di questo servlet ...
Possiamo chiamare la maggior parte del servlet con il seguente formato URL:
Qual è il contenuto tipo che punta a un file servlet?
È un documento servlet che potrebbe leggere il contenuto di un file e aggiungerlo a un flusso che può essere inviato tramite e-mail in risposta. Per questo motivo, abbiamo bisogno di notificare al server poiché abbiamo persino impostato quel tipo di contenuto su APPLICATION / OCTET-STREAM. scansionare javax.servlet.http. *;
Il browser dovrebbe richiedere ad alcuni utenti di scaricare direttamente il file, come mostrato nella schermata successiva:
- Esempio di caricamento di un file servlet Java dal database
- Utilizzare HttpURLConnection per recuperare un file da un URL HTTP.
- Esporta istruzioni e file Java-FTP di esempio
- Applicazione Swing per CD file server HTTP con indicatore completato
- Scelta Swing per scaricare file da un server FTP tramite utilizzo di una barra di avanzamento
- Esempio di applicazione Spring MVC File Downloader
- Esempio di applicazione per il download di file Struts
Altre guide Java Servlet:
Come inviare dati PDF da un servlet Java?
Il tutorial Java Servlet PDF mostra come restituire i dati PDF da un gigante Java Servlet. Utilizziamo la libreria iText in modo che tu possa lavorare grazie al PDF. L’applicazione web viene letteralmente distribuita verso il server Tomcat. Portable Document Format (PDF) sarebbe un formato di file utilizzato per separare i documenti dopo il software applicativo, l’hardware e i sistemi di prestazioni.
- Introduzione a Java Servlet for Newbies (XML)
- Java Servlet for Beginners (Note)
- Elaborazione di dati varianti HTML con un Java Servlet
- Come lavorare una sessione in un’installazione web Java
- Come gestire gli errori in Java Web.xml per applicazioni web
< li> Come utilizzare i cookie in ogni applicazione web Java
- Dettagli
- Scritto da Nam Ha Min
- Ultimo aggiornamento 20 maggio 2020 & nbsp | & nbsp Stampa e-mail
Informazioni sull’autore:
nam Minh è un programmatore Java certificato ( SCJP e SCWCD). Ha iniziato con Java ai nostri giorni di Java 1.4 ed è stato entusiasta subito dopo Java. Fai amicizia con lui su Facebook e guarda i video Java su YouTube.
Accelera ora le prestazioni del tuo computer con questo semplice download.