Sunucumdan bir dosya (mp3) indirmeye çalışıyorum.Dosya karşıdan yükleme - negatif dosya uzunluğu
İndirme işleminin ilerlemesini göstermek istiyorum ancak dosya boyutu -1
olduğu zaman bir sorunla karşılaşıyorum.
ekran görüntüsü:
Kodum:
try {
URL url = new URL(urls[0]);
// URLConnection connection = url.openConnection();
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.connect();
int fileSize = connection.getContentLength();
if (fileSize == -1)
fileSize = connection.getHeaderFieldInt("Length", -1);
InputStream is = new BufferedInputStream(url.openStream());
OutputStream os = new FileOutputStream(myFile);
byte data[] = new byte[1024];
long total = 0;
int count;
while ((count = is.read(data)) != -1) {
total += count;
Log.d("fileSize", "Lenght of file: " + fileSize);
Log.d("total", "Lenght of file: " + total);
// publishProgress((int) (total * 100/fileSize));
publishProgress("" + (int) ((total * 100)/fileSize));
os.write(data, 0, count);
}
os.flush();
os.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
ben -1
(int fileSize = connection.getContentLength();
) return fileSize
için çöp değeri elde
Bu URL'yi el ile yüklediğinizde, sunucudan geri gelen başlıkları incelemek için ** 'curl' ** gibi bir komut satırı aracı kullanın. Belki de sunucu herhangi bir uzunluk ile ilgili başlık ayarlamıyor. – CommonsWare
Bazen Uzunluk bilinmiyor - sunucu tarafına bağlı. Çözümünüzle ilgili yanlış bir şey yok – Toumash
@Prosanto Gördüğüm gibi, doğru şekilde gösterilmese bile indirilmemelidir. İndirilen dosya çalışıyor mu? – Chaoz