使用FileBody上传音频,视频和图像

时间:2015-08-06 13:11:54

标签: android image audio video file-upload

我想一起上传音频,视频和图片。我使用以下代码:

if (file_name_for_rear_image != null && f_intruder_rear.exists()) {
    ContentType contentType = ContentType.create("image/jpeg");
    FileBody cbFile = new FileBody(f_intruder_rear,contentType);
    multipartEntity.addPart("image[]", cbFile);
}
File video_file = new File(VIDEO_PATH_NAME);
if (VIDEO_PATH_NAME != null && video_file.exists()) {
    ContentType contentType = ContentType.create("video/mp4");
    FileBody cbFile = new FileBody(video_file,contentType);
    multipartEntity.addPart("video", cbFile);
}
File audio_file = new File(audio_file_name);
if (audio_file_name != null && audio_file.exists()) {
    ContentType contentType = ContentType.create("audio/mp3");
    FileBody cbFile = new FileBody(audio_file, contentType);
    multipartEntity.addPart("audio", cbFile);
}

对于图像 - 当我从图像文件体中重新显示内容类型时,它将被上传。但是当我添加内容类型时,它无法正常工作。

对于音频/视频 - 无论我是否保留内容类型,都不会上传。

1 个答案:

答案 0 :(得分:2)

我通过在FileBody对象中传递文件来解决它。

if (file_name_for_rear_image != null && f_intruder_rear.exists()) {

        ContentType contentType = ContentType.create("image/jpeg");
        FileBody cbFile = new FileBody(f_intruder_rear, contentType,
                "image.jpg");
        multipartEntity.addPart("image[]", cbFile);
    }
    File video_file = new File(VIDEO_PATH_NAME);
    if (VIDEO_PATH_NAME != null && video_file.exists()) {
        ContentType contentType = ContentType.create("video/mp4");
        FileBody cbFile = new FileBody(video_file, contentType, "video.mp4");
        multipartEntity.addPart("video", cbFile);
    }
    File audio_file = new File(audio_file_name);
    if (audio_file_name != null && audio_file.exists()) {
        ContentType contentType = ContentType.create("audio/mp3");
        FileBody cbFile = new FileBody(audio_file, contentType, "audio.mp3");
        multipartEntity.addPart("audio", cbFile);
    }

您可以提供任何文件名。希望它可以帮助别人,因为我为此找到了太多的努力。