Maison > Questions et réponses > le corps du texte
从服务器下载图片到本地路径,然后在前端展示那个图片,路径这块应该怎么处理?求大神支招啊。
天蓬老师2017-04-17 17:46:08
1. Créez un dossier pour stocker les images
2. Créez un fichier pour stocker les images
3. Téléchargez des images et écrivez-les dans des fichiers
//一般图片存储在手机SD卡 获取手机的SD卡根目录增加temp的文件夹路径
Environment.getExternalStorageDirectory().getAbsolutePath() + "/temp";
Téléchargez les images et stockez-les dans le code principal local
void doSaveImage(){
String filePath = FileUtil.getEnvironmentPath();
Log.i("doSaveImage",filePath + "");
File fileFloder = new File(filePath);
if(!fileFloder.exists()){
if(fileFloder.mkdirs()){
Log.i("doSaveImage","file.mkdirs" + " true");
}else{
Log.i("doSaveImage","file.mkdirs" + " false");
Toast.makeText(this,"save error!",Toast.LENGTH_SHORT).show();
}
}
InputStream in = null;
OutputStream out = null;
try {
Log.i("doSaveImage",AppConst.IMG_HEAD_URL + mUrl);
URL url = new URL(AppConst.IMG_HEAD_URL + mUrl);
URLConnection con = url.openConnection();
con.setConnectTimeout(5*1000);
int contentLength = con.getContentLength();
in = con.getInputStream();
byte[] bytes = new byte[1024];
File file = new File(fileFloder.getPath(), name +".jpg");
out = new FileOutputStream(file);
int len;
while ((len = in.read(bytes)) != -1){
Log.i("doSaveImage",len + "");
out.write(bytes,0,len);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try{
if(in != null) in.close();
if(out != null) out.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
PHP中文网2017-04-17 17:46:08
String path = null;
if (getExternalCacheDir() != null) {//Déterminez si le stockage externe est disponible, c'est-à-dire la carte SD
//S'il y en a, utilisez la carte SD
chemin = contexte .getExternalCacheDir().getAbsolutePath() File.separator;
} else {
//Sinon, il y a la propre mémoire du téléphone
path= context.getCacheDir().getAbsolutePath() File.separator;
}
Ce qui précède écrit uniquement dans le répertoire racine, vous pouvez créer de nouveaux répertoires en fonction de vos besoins
Le contexte de la méthode getExternalCacheDir peut être utilisé directement dans Application, ou getExternalCacheDir peut être appelé directement dans Application