java - Android:文件在模拟器中工作但在设备中出现错误?

标签 java android file-upload http-post

我只是尝试通过代码将文件上传到服务器,如果我从模拟器访问文件,它工作正常,

路径data/app/07312012_135528.3gp并获取服务器响应200,OK

但是当我通过设备访问要上传的文件时出现错误400,错误请求 当文件存在于 SDCard 中并且通过 File.exists() 检查时。

我的手机是三星 Galaxy Ace

HttpPost postRequest = new HttpPost(ServerURL);
MultipartEntity reqEntity = new MultipartEntity();
File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "tdsongdata/07312012_135528.3gp");
// path becomes "/mnt/sdcard/tdsongdata/07312012_135528.3gp"

if(yourFile.exists())
{
    reqEntity.addPart("email", new StringBody("esetylo@gmail.com"));
    reqEntity.addPart("password", new StringBody("123"));
    reqEntity.addPart("title", new StringBody("The new file"));         
    reqEntity.addPart("musicData", new FileBody(yourFile));
}

但是当我尝试从设备中的同一路径播放它时,它会成功播放音频

MediaPlayer mp = new MediaPlayer();
try {
        mp.setDataSource("/mnt/sdcard/tdsongdata/07312012_135528.3gp");
    mp.prepare();
    mp.start(); 
} catch (IllegalArgumentException e) {
        e.printStackTrace();
} catch (IllegalStateException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

不明白问题出在哪里,请帮忙

最佳答案

将您的手机语言更改为英语(美国)。重新启动您的设备并重试。

关于java - Android:文件在模拟器中工作但在设备中出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11812549/

相关文章:

java - 如何在已调用的方法中引用对象?

java - 在服务器上使用 Ant 实现自动化

android - 如何设置 Android Studio 项目所需的最低 SDK Build Tools 版本?

android - 使用 Fragment backstack 查询

tomcat - 如何将文件从微 Controller 上传到tomcat servlet

file-upload - 用于 firebase_storage 的 Flutter OnProgressListener?

java - Ubuntu 上的 Bazel 和 Java 11

java - 重写java中的泛型方法

android - android wear 的全屏背景图片大小

php - 为什么 $_FILES super 全局总是空的