2015-03-31 2 views
0

Я загружаю некоторые изображения из своего веб-сервиса, используя приведенный ниже код, и он отлично работает, но после того, как они загружены и скопированы на SD-карту, они являются неизвестными типами файлов, хотя у них есть .jpg в конце, и мое приложение по-прежнему может загружать их в изображения, но я не могу открыть ни одно из этих загруженных изображений через галерею устройства из файлового менеджера. Есть идеи?андроид скачанных изображений не в правильном формате

Вот как загрузить и сохранить изображения:

public void downloadImage(String url, String fileName) { 
    try { 
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
       .permitAll().build(); 
     StrictMode.setThreadPolicy(policy); 
     String[] fileNameSplit = fileName.split("\\."); 
     String fileNameMobile = fileNameSplit[0] + "-mob." + fileNameSplit[1]; 

     URL urlConnection = new URL(url); 
     URLConnection connection = urlConnection.openConnection(); 

     InputStream in = connection.getInputStream(); 

     File outFile = new File(file.getPath() + "/" + fileNameMobile); 
     OutputStream out = new FileOutputStream(outFile); 

     copyFile(in, out); 
     out.close(); 
     in.close(); 


    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

пример имени файла в директории просматриваемой менеджером файла:

_58df8aa6dbb44ff7b870b49a4b2d8efb-mob.jpg 
+0

ухаживать за голосом? –

+0

Вы добавили расширение «.jpg» к имени файла? –

+0

@BlackMagic Yup, он есть. Приложение может загружать изображения в изображения, но с помощью диспетчера файлов они являются неизвестными файлами, хотя они имеют .jpg в конце. –

ответ

1

Попробуйте

bitmap.compress(Bitmap.CompressFormat.JPEG, quality, outStream); 

Вот небольшой пример

File file = new File(file.getPath() + "/" + fileNameMobile); 
FileOutputStream fOut = new FileOutputStream(file); 

bmp.compress(Bitmap.CompressFormat.JPEG, 85, fOut); 
fOut.flush(); 
fOut.close(); 
0

Похоже, что после того, как я прочитал загруженное имя файла из URL-адреса, добавлен код \n, чтобы до конца кода был внесен этот файл в неизвестный файл, а также я не смог прочитать файл позже с использованием того же имени файла без \n, но теперь, удалив это \n с конца имени файла, теперь он отлично работает.

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