PDF Download

  • 0 Antworten
  • Letztes Antwortdatum
M

masterkot

Neues Mitglied
0
Hallo zusammen,
ich bastel mir zur Zeit eine App, mit der ich mir PDFs von meinem Server laden kann und anzeigen kann. Soweit funktioniert dieses auch alles schon sehr gut.
Jetzt habe ich aber das Problem, dass manche PDFs nicht geladen werden.
Meine run Methode für den Dowonload sieht wie folgt aus:

Code:
try
	    {
	        url = new URL(downloadUrl);
	        conn = url.openConnection();
	        conn.setUseCaches(false);
	        fileSize = getFileSize(url);
	       	 
	        lastSlash = url.toString().lastIndexOf('/');
	        fileName = "file.bin";
	        if(lastSlash >=0)
	        {
	            fileName = url.toString().substring(lastSlash + 1);
	        }
	        if(fileName.equals(""))
	        {
	            fileName = "file.bin";
	        }
	 
	        int fileSizeInKB = fileSize / 1024;
	        msg = Message.obtain(parentActivity.activityHandler,
	                Select_menu.MESSAGE_DOWNLOAD_STARTED,
	                fileSizeInKB, 0, "");
	        parentActivity.activityHandler.sendMessage(msg);
	 
	        inStream = new BufferedInputStream(conn.getInputStream());
	        outFile = new File(Environment.getExternalStorageDirectory() + "/" + fileName);
	        fileStream = new FileOutputStream(outFile);
	        outStream = new BufferedOutputStream(fileStream, 1500);
	        byte[] data = new byte[1500];
	        int bytesRead = 0, totalRead = 0;
	        while(!isInterrupted() && (bytesRead = inStream.read(data, 0, data.length)) >= 0)
	        {
	            outStream.write(data, 0, bytesRead);
	 
	            // update progress bar
	            totalRead += bytesRead;
	            int totalReadInKB = totalRead / 1024;
	            msg = Message.obtain(parentActivity.activityHandler,
	                    Select_menu.MESSAGE_UPDATE_PROGRESS_BAR,
	                    totalReadInKB, 0);
	            parentActivity.activityHandler.sendMessage(msg);
	        }
	        outStream.close();
	        fileStream.close();
	        inStream.close();
	 
	        if(isInterrupted())
	        {
	            outFile.delete();
	        } 
	        else
	        {
	        	parentActivity.showPDF();
	            // notify completion
	            msg = Message.obtain(parentActivity.activityHandler,
	                    Select_menu.MESSAGE_DOWNLOAD_COMPLETE);
	            parentActivity.activityHandler.sendMessage(msg);
	        }
	    }
	    catch(MalformedURLException e)
	    {
	        String errMsg = parentActivity.getString(R.string.error_message_bad_url);
	        msg = Message.obtain(parentActivity.activityHandler,
	                Select_menu.MESSAGE_ENCOUNTERED_ERROR,
	                0, 0, errMsg);
	        parentActivity.activityHandler.sendMessage(msg);
	    }
	    catch(FileNotFoundException e)
	    {
	        String errMsg = parentActivity.getString(R.string.error_message_file_not_found);
	        msg = Message.obtain(parentActivity.activityHandler,
	                Select_menu.MESSAGE_ENCOUNTERED_ERROR,
	                0, 0, errMsg);
	        parentActivity.activityHandler.sendMessage(msg);
	    }
	    catch(Exception e)
	    {
	        String errMsg = parentActivity.getString(R.string.error_message_general);
	        msg = Message.obtain(parentActivity.activityHandler,
	                Select_menu.MESSAGE_ENCOUNTERED_ERROR,
	                0, 0, errMsg);
	        parentActivity.activityHandler.sendMessage(msg);
	    }
	}

Das Problem ist, dass manche Dateien nicht geladen werden. Ich habe bereits Namen ausgetauscht, um zu sehen, ob es evtl. an der Länge der Namen liegt. Jedoch wird dann auch nur die Datei runtergeladen, die vorher bereits auch ging.
Vielleicht ein kleines Beispiel:

Ich habe 2 Dateien:
- datei_1.pdf
- datei_2.pdf

datei_1.pdf kann ich ohne Probleme runterladen und anzeigen lassen. Jedoch gibt es ein Problem bei der Datei_2.pdf, diese wird nicht geladen.
Wenn ich die jetzt aber umbenenne, also dass Datei_1.pdf zu Datei_2.pdf wird und umgekehrt, dann kann ich wiederum nur Datei_2.pdf runterladen und habe Probleme mit Datei_1.pdf.
Es muss also direkt mit der Datei selber zu tun haben. An der Größe liegt es auch nicht, da größere und kleinere Dateien ganz normal funktionieren.

Ich bekomme auch keinen Fehler o.ä.

Weiß hier vielleicht jemand, woran das liegen könnte?

Vielen Dank und Gruß
Mats

Der ursprüngliche Beitrag von 15:47 Uhr wurde um 16:16 Uhr ergänzt:

Noch ein kleiner Zusatz:
Ich bekomme die Meldung, dass die Datei nicht gefunden werden konnte. Funktionieren tut es aber trotzdem, wenn ich die Namen vertausche...

Der ursprüngliche Beitrag von 16:16 Uhr wurde um 17:19 Uhr ergänzt:

Hab's selber gelöst :D
Problem waren die Berechtigungen. Meim Mac erlaubt allen öffentlichen das "Ansehen", deswegen habe diese funktioniert. Bei Windows wird diese Berechtigung aber nicht hinzugefügt, weswegen der Zugriff einfach verweigert wurde
 

Ähnliche Themen

AnnaBauer21
Antworten
6
Aufrufe
989
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten