//根据指定的二进制流字符串保存文件并返回保存路径
public static String saveFileByBinary(String str,String attName,Context context){ /***加载附件***/
//获取存储卡路径、构成保存文件的目标路径
String dirName = "";
//SD卡具有读写权限、指定附件存储路径为SD卡上指定的文件夹
dirName = Environment.getExternalStorageDirectory()+"/MyDownload/";
File f = new File(dirName);
if(!f.exists()){ //判断文件夹是否存在
f.mkdir(); //如果不存在、则创建一个新的文件夹
}
//准备拼接新的文件名
String fileName = "";
fileName = attName;
fileName = dirName + fileName;
File file = new File(fileName);
if(file.exists()){ //如果目标文件已经存在
file.delete(); //则删除旧文件
}
byte[] byteFile = Base64.decode(str, 0);
try {
InputStream is = new ByteArrayInputStream(byteFile);
FileOutputStream os = new FileOutputStream(file);
byte[] b = new byte[1024];
int len = 0;
//开始读取
while ((len = is.read(b)) != -1) {
os.write(b, 0, len);
}
//完毕关闭所有连接
is.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
return fileName;
}