android使用多端口上传图像

android使用多端口上传图像,android,upload,http-post,multipartentity,Android,Upload,Http Post,Multipartentity,我正在尝试使用以下代码上载图像: HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost( "http://konsole-data.de/uploadtest/upload.php"); MultipartEntity multiPart = new MultipartEntity();

我正在尝试使用以下代码上载图像:

  HttpClient httpClient = new DefaultHttpClient();

            HttpPost httpPost = new HttpPost(
                    "http://konsole-data.de/uploadtest/upload.php");

            MultipartEntity multiPart = new MultipartEntity();
            multiPart.addPart("picture", new FileBody(new File(path)));

            httpPost.setEntity(multiPart);
            try {
                HttpResponse res = httpClient.execute(httpPost);

                            Toast.makeText(getApplicationContext(),res.toString(),
                        Toast.LENGTH_LONG).show();
            } catch (ClientProtocolException e) {

                e.printStackTrace();
            } catch (IOException e) {

                e.printStackTrace();
            }
path是一个字符串,用于标识图像,如/mnt/sdcard/DCIM/12712.jpg连接正常,但没有图像上载到服务器,您可以在此处看到调试文件:

我做错了什么?

您可能应该指定
HttpMultipartMode
,以及文件的MIME类型(但我认为这不是必需的):

编辑:

您还应该检查是否使用了正确的路径。不要将
文件
对象创建为匿名内部类:

File file = new File(path);
if(file.exists()){
    FileBody bin = new FileBody(file, "image/jpeg");
    multipart.addPart("picture", bin);
} else {
    Log.w(YourClass.class.getSimpleName(), "File " + path + " doesn't exist!");
}

刚刚补充说。。仍然无法上传图像:POST:a:0:{}文件:a:0:{}代码似乎正常。我用同样的方法在我的一个项目中上传图片。你确定图像的路径正确吗?是的,我用Toast来检查。路径为mnt/sdcard/DCIM/Camera/162533.jpg该路径错误。它是“/mnt/sdcard/…”。如果您正在查看正确的位置,请查看
File.exists()
。谢谢。文件存在,我忘了说我在同一活动中使用同一路径创建图像预览,但我仍然无法管理上载。。POST:a:0:{}文件:a:0:{}原因可能是php脚本无法正确处理文件吗?我想,当我从PC上选择一个图像时,它工作得很好
File file = new File(path);
if(file.exists()){
    FileBody bin = new FileBody(file, "image/jpeg");
    multipart.addPart("picture", bin);
} else {
    Log.w(YourClass.class.getSimpleName(), "File " + path + " doesn't exist!");
}