Download einer PDF

  • Hallo Leute,
    Ich versuche eine Datei herunterzuladen.
    Ich versuche es aktuell so:

    Java
    ...
    
    
               DownloadPDF("http://www.selab.isti.cnr.it/ws-mate/example.pdf", "Example.pdf");
    
    
    ....



    Berechtigungen

    Code
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>


    So schmiert die App aber leider ab :(


    mfg ternes3

  • Hoi,


    File currentf = new File(Environment.getExternalStorageDirectory() + "/asrplus/" + reportDate + "/" + fileName);


    Gibts die Hierachie überhaupt? Das kannst du so eigentlich nicht lassen, da gehören typische if not exists konstrukte rein, die dir zuverlässig die Ordner erzeugen, wenn sie nicht da sind.


    Hast du auch mal getestet, direkt auf den OutputStream zu schreiben um auszuschließen, dass was mit dem ByteArrayBuffer nicht richtig läuft?


    Sollte es nicht fruchten, solltest du auch mal den LogCat Output hier posten.



    Gruß,
    matze

  • Ja die Ordner gibt es die werden for DownloadFile überprüft und dann angelegt.
    So ich habe es jetzt über den DownloadManager geschaft die Datei zu laden.
    Jedoch finde ich die Datei nicht auf der SD Karte.


    So klappt es:

    Java
    request.setDestinationInExternalPublicDir(Environment.getExternalStorageState().toString() + "/arsplus/", "Sample.pdf");


    So klappt es nicht.

    Java
    request.setDestinationInExternalPublicDir(Environment.getExternalStorageDirectory().toString() + "/arsplus/", "Sample.pdf");


    Edit habe es jetzt so gelöst:

    Java
    request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "/../asrplus/" + reportDate + "/" + "Vertretungsplan.pdf");


    Jetzt habe ich noch eine Frage. Ist es möglch dem DownloadManager mittuteilen das er die Datei überschreiben soll falls Sie existiert. ?


    mfg ternes3

  • Hoi,


    warum machst du nicht einfach

    Java
    request.setDestinationInExternalPublicDir("/asrplus/" + reportDate, "Vertretungsplan.pdf");


    ?


    Auf jeden Fall scheint es ein Overwrite Flag nicht zu geben. Müsstest also selbst tun.

    Java
    File myFile = new File("/asrplus/" + reportDate + "/Vertretungsplan.pdf"); 
    if (myFile.exists()) {
    	myFile.delete(); 
    }



    Gruß,
    matze

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!