So legen Sie den Inhaltstyp für das Servlet fest

8

Ich verwende ein einfaches Servlet, das Dokumentinhalt von der Datenbank als Byte-Array zurücksendet. Ich möchte einen Inhalt festlegen type so dass es eine entsprechende Erweiterung hat, während es über einen Aufruf von doGet () abgerufen wird.

Ich habe den Typ des Dokuments als Metadaten in der Datenbank gespeichert (z. B. png, gif, png, xls, docx ...).

  1. Was muss ich als Inhaltstyp festlegen, damit die Dateierweiterung beibehalten wird?
  2. Die Datei wird mit dem Namen "doc" heruntergeladen. Wie lege ich den Dateinamen des Servlets für die heruntergeladenen Daten fest.
user339108 07.03.2011, 05:30
quelle

2 Antworten

12
  

Was muss ich als Inhaltstyp festlegen, damit die Dateierweiterung beibehalten wird?

Verwenden Sie ServletContext#getMimeType() , um den Mime-Typ basierend auf dem Dateinamen zu erhalten.

%Vor%

Der Servletcontainer stellt normalerweise bereits eine standardmäßige Mime-Typ-Zuordnung in seiner eigenen web.xml bereit. Wenn Sie einen anderen überschreiben oder hinzufügen möchten, fügen Sie ihn als neue Mime-Zuordnungen in webapps web.xml ein. ZB

%Vor%

Setze es als Content-Type response header:

%Vor%
  

Die Datei wird mit dem Namen "doc" heruntergeladen. Wie lege ich den Dateinamen des Servlets für die heruntergeladenen Daten fest.

Fügen Sie es der Servlet-URL hinzu, da einige Browser wie MSIE das filename -Attribut der Inhaltsdisposition ignorieren.

%Vor%

Wenn das Servlet einem URL-Muster von /download/* zugeordnet ist, können Sie es wie folgt abrufen

%Vor%

Setze es schließlich auch in den Header Content-Disposition , um normale Browser glücklich zu machen:

%Vor%

Wenn Sie Dateinamen nicht in der Datenbank, sondern eher in IDs speichern, verwenden Sie sie stattdessen als Dateinamen.

%Vor%

Und dann im Servlet

%Vor%     
BalusC 07.03.2011 12:38
quelle
8
  
  1. Was sollte ich als Inhaltstyp festlegen, damit die Datei beibehalten wird?   Erweiterung?
  2.   

Sie können die Methode setContentType des Response-Objekts verwenden, um den Mime festzulegen. zB:

%Vor%
  

2.Die Datei wird mit dem Namen "doc" heruntergeladen, wie stelle ich das ein   Dateiname im Servlet für die Daten   heruntergeladen werden

Sie können den Dateinamen der heruntergeladenen Datei festlegen, indem Sie den richtigen Header festlegen. Sie können Content-Disposition wie folgt verwenden:

%Vor%     
Abdel Raoof 07.03.2011 05:37
quelle

Tags und Links