Announcement

Collapse
No announcement yet.

DownloadAction lädt "download.do" statt der Datei runter

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DownloadAction lädt "download.do" statt der Datei runter

    Hallo!

    Ich hoffe, dass ihr mir helfen könnt, hier hänge ich ein wenig.

    Zunächst der relevante Code der DownloadAction:
    Code:
    public class DownloadAudioAction extends org.apache.struts.actions.DownloadAction {
    [..]
    
    
    protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,
                HttpServletRequest req, HttpServletResponse res)
                throws Exception {
    
    /*hier wird ein Fileobjekt angelegt (sorceFile), das auf ein File eines gemounteten Sambalaufwerkes zeigt, zB: z:\pfad\dateiname.endung.
    Der Pfad kommt aus der Session, sodass keine Parameter für den Download benötigt werden.
    Der Pfad wurde durch AJAX vorher schon vorbereitet und in die Session gelegt.*/
    [..]
    
    //dann sollte so wie ich das verstanden habe nur noch diese Zeile kommen:
    //die FileStreamInfo habe ich nicht ausprogrammiert.
    return new FileStreamInfo("application/mp2", sourceFile);

    Die entsprechende Stelle in der struts-config.xml:
    HTML Code:
    <!-- RechercheModul: Download eines via AJAX preparedDownloads -->
            <action     path="/download" 
                        type="de.hr.mediaexpress4.recherche.action.DownloadAudioAction"
                        />

    Folgender seltsame Fehler:
    Da der Download noch nicht aud der JSP verlinkt ist, tippe ich einfach "download.do" in das Browserfenser und drücke Enter. Die Action wird auch ausgelöst, jedoch wird die runterzuladene Audiofile (eine mp2) unter dem vorgeschlagenen Namen download.do angegeben. Im Mozilla kann ich sie auch unter dem Namen speichern und dem Mediaplayer öffen, beim IE kann ich sie nicht speichern weil er mir dann sagt, ich hätte keinen ausreichenden Speicherplatz auf der Platte, öffne ich sie jedoch im IE mit dem Texteditor und speichere sie unter dem namen irgndwas.mp2 kann ich sie auch damit öffen.

    Exceptions gibts keine. Pfade stimmen...

    Zwei Fragen:
    1.) Was habe ich da falsch gemacht, wie kann ich angeben, dass er den originalen Dateinamen behält?
    2.) Die DownloadAction mit Javascript auslösen? Wie geht das? Ich habe ja keine Form und somit keinen Submitbutton.

    Danke für die Hilfe im Voraus!
    lG
    Hades

  • #2
    Lösung

    vor dem return des FileStreamInfos

    Code:
     String contentType = "application/unknow";
     response.setHeader("content-type", contentType);
     response.setHeader("Content-Disposition", "attachment; filename=\"" + source_file.getName() + "\"");

    Comment

    Working...
    X