2013-07-28 4 views
-1

Я создал программу, которая загружает ZIP-архивы из Dropbox, которые использует клиент, но каждый раз, когда я пытаюсь открыть архивы, в нем говорится: «Невозможно открыть файл« местоположение файла »в качестве архива. Я исправить это из происходящего?Загруженные файлы Dropbox повреждены

public void modDownload(String url, String filename) { 
    try { 
     URL dropbox = new URL(url); 
     ReadableByteChannel rbc = Channels.newChannel(dropbox.openStream()); 
     FileOutputStream fos = new FileOutputStream(appdata + filename); 
     fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 
    } catch(Exception e) {  
    } 
} 

И я это называю, как этот

modDownload("https://www.dropbox.com/s/a8itscdtu81jj2z/armorhud.zip", 
      "armorhud.zip"); 

Что я делаю не так? Я не думаю, что это URL-адрес, вызывающий проблему.
Кроме того, все остальные потоки я проверил, что stackoverflow предложил (и когда я googeled) проблему, все ответы не помогли, или я не сделал (как это было объяснено плохо)

ответ

1

Откройте ссылку, которую вы опубликовали в своем браузере, наведите указатель мыши на кнопку «Загрузить». Если вы нажмете на эту кнопку, вызывается новая ссылка. Это ссылка, которую вы должны будете использовать в своем коде. Это ссылка, я получил от нажав кнопку Загрузить на странице загрузки:

https://dl.dropboxusercontent.com/s/a8itscdtu81jj2z/armorhud.zip?token_hash=AAGVg84Z26vkuqJO-3bAX6BEQREt0UDtiDRkGZXWWa1y9A&dl=1

Однако я не уверен, как Dropbox индексы их файлы, так что ссылка может измениться к тому времени, когда Вы читаете этот ответ.

+0

dl = 1 заставляет загружать, без необходимости нажмите кнопку «Загрузить». Как предлагается здесь: [https://www.dropbox.com/ru/help/201] –

1

Если вы перейдете к указанному вами местоположению: https://www.dropbox.com/s/a8itscdtu81jj2z/armorhud.zip, вам будет предоставлена ​​страница, содержащая кнопку загрузки. Вы не можете ожидать, что ваш код автоматически подумает о том, чтобы перейти к URL-адресу, который будет отправлять вам кнопка загрузки.

Что нужно сделать, это загрузить HTML-страницу в виде ZIP-файла, поэтому она не может открыть ее как архив. HTML-файл не является архивом. Измените URL-адрес на фактическое местоположение файла для загрузки.

Также обратите внимание на Dropbox Core API и другие API-интерфейсы, если вы хотите улучшить способ взаимодействия файлов с вашим приложением.

0

просто замените www на dl в файле url, если он живет в вашей общественной зоне, иначе вам нужно будет «получить ссылку», щелкнув правой кнопкой мыши файл. если вы сделаете это через свой веб-исследователь, он будет готов к использованию, если вы сделаете это, щелкнув правой кнопкой мыши в вашем файле-исследователе, вам нужно будет сменить www на dl

Смежные вопросы