使用multipartformentity将文件上载到php脚本(文件以$\u POST结尾)

使用multipartformentity将文件上载到php脚本(文件以$\u POST结尾),php,android,multipartentity,Php,Android,Multipartentity,我有一个android应用程序,它使用ApacheHttpComponents的多个组件。应用程序使用HTTP请求将文件上载到php脚本。然而,我正在上传的文件(.ogg)最终以$\u POST而不是$\u文件结束,看起来像二进制文件,尽管我可能错了 我有chrome rest扩展名,我用它发布了一个多部分/表单数据请求,该请求包含完全相同的.ogg文件,该文件最终位于正确的位置($\u文件) Android代码如下: // Send the file to the server. // Cre

我有一个android应用程序,它使用ApacheHttpComponents的多个组件。应用程序使用HTTP请求将文件上载到php脚本。然而,我正在上传的文件(.ogg)最终以$\u POST而不是$\u文件结束,看起来像二进制文件,尽管我可能错了

我有chrome rest扩展名,我用它发布了一个多部分/表单数据请求,该请求包含完全相同的.ogg文件,该文件最终位于正确的位置($\u文件)

Android代码如下:

// Send the file to the server.
// Create HTTP objects.
// Request.
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(ACTION);

// Response.
HttpResponse httpResponse;

httpClient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

MultipartEntity mpEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
ContentBody cbFile = new FileBody(mediaFile, "audio/ogg");
mpEntity.addPart("file", cbFile);

httpPost.setEntity(mpEntity);

// Execute.
httpResponse = httpClient.execute(httpPost);

// Evaluate the response.
int statusCode = httpResponse.getStatusLine().getStatusCode();

// Make sure everythings okay.
if (statusCode == 200) {
     HttpEntity resEntity = httpResponse.getEntity();
     if (resEntity != null) {
          String body = EntityUtils.toString(resEntity);
          resEntity.consumeContent();
          Log.d("APP_STATUS", body);
     }
}

httpClient.getConnectionManager().shutdown();
还有非常简单的PHP脚本:

<?php
echo "\$_POST";
var_dump($_POST);
echo "\$_FILES";
var_dump($_FILES);
?>

使用应用程序时的响应:

使用Chrome REST扩展时的响应:


如果有人了解我在epicly方面的失败之处,请告诉我。

尝试使用实体生成器

HttpEntity mpEntity = MultipartEntityBuilder.create()
    .addBinaryBody(
      "file", cbFile, ContentType.create("audio/ogg"), cbFile.getName())
    .build();

尝试使用实体生成器

HttpEntity mpEntity = MultipartEntityBuilder.create()
    .addBinaryBody(
      "file", cbFile, ContentType.create("audio/ogg"), cbFile.getName())
    .build();

你有权访问
multipartitybuilder
?我相信是的,我使用的代码来自类似的情况,只是他们上载了一个图像文件。你有权访问
multipartitybuilder
?我相信是的,我使用的代码来自类似的情况,只是他们上载了一个图像文件。