我编写了一个应用程序,用于从给定的url路径下载 .PDF 文件。 但是当我在虚拟机中运行它时,我发现我的应用程序无法下载该文件。 所以我在vm中尝试了 DownloadManager ,但仍无法下载该文件。 并且DownloadManage停止了并且始终显示“ OnGoing ”。 谁能告诉我原因以及如何解决这个问题? 提前致谢! PS:我写这个
public File writeFileToSDCard(String path,String fileName,InputStream in){
File file = null;
OutputStream out = null;
try{
if(!createDir(path)){
Log.e("FileUtils.java", "writeFileToSDCard().createDir() failed!");
}else{
Log.e("FileUtils.java", "writeFileToSDCard().createDir() Successed!");
}
file = createFile(path+fileName);
out = new FileOutputStream(file);
byte buffer[] = new byte[128];
//write the file
do{
int length = in.read(buffer);
if(length != -1){
Log.e("FileUtils.java", "Writing to card!");
out.write(buffer, 0, length);
}else{
break;
}
}while(true);
}catch(Exception e){
Log.e("FileUtils.java", "writeFileToSDCard() failed!");
}finally {
try{
out.close();
}catch (Exception e) {
Log.e("FileUtils.java", "writeFileToSDCard() finally failed!");
}
}
return file;
}
* PSS: *我不认为我的代码出错了,但这是android模拟器的问题吗?
答案 0 :(得分:0)
很可能是因为您无权从服务器下载文件。
几天前我遇到了类似的问题,我通过在服务器目录中创建 .htacces 文件解决了这个问题。创建一个名为 .htacess 的文件,其中包含以下内容:
satisfy any
并将其保存在pdf文件所在的目录中。我不熟悉它是如何工作的,但我想它与权限有关。请注意,如果您这样做,任何人都可以访问该目录的内容。我相信这只会推动Apache服务器。
不知道它是否会起作用,但值得一试。