不使用多部分httppost方法在android中发布图像文件

2023-12-11

这个问题借用自同样的问题,因为我遇到了一些问题。在服务器端发布图像期间,图像详细信息无法进入服务器端。像这样:

无法发布图像文件信息php服务器,用户ID正常但图像文件信息无法发布。在这种情况下,图像在服务器上保存成功,我无法获取图像的php服务器上的信息。

这是代码:

公共类UploadImageHttpPost {

String testpath="/mnt/sdcard/14111.jpg";
String url = "http://andtuts.com/uploadImage.php";

public static void sendPost(String url, String imagePath,String userId)
        throws IOException, ClientProtocolException {
     String responseBody;

    MultipartEntity entity = new MultipartEntity(
            HttpMultipartMode.BROWSER_COMPATIBLE);

    File file = new File(imagePath);
    FileBody encFile = new FileBody(file,"image/jpeg");
    entity.addPart("images", encFile);
    entity.addPart("UserId", new StringBody(userId));
    HttpPost request = new HttpPost(url);
    request.setEntity(entity);

    HttpClient client = new DefaultHttpClient();

    ResponseHandler<String> responsehandler = new BasicResponseHandler();
    responseBody = client.execute(request, responsehandler);

    if (responseBody != null && responseBody.length() > 0) {
        Log.w("TAG", "Response from image upload->" + responseBody);

    }
}

我得到这样的:

Array
(
    [UserId] => 1
)

我在 php 中使用它进行测试,来自多部分的内容:

$filedata = $_FILES['图像'];
$f = fopen(time().".txt",'wb');
fwrite($f, print_r($_REQUEST,true));
fclose($f);

但是下面的部分缺失意味着我没有得到,多部分post方法中是否有任何缺失的代码,请检查上面的java代码:

[images] => Array
        (
            [name] => ball.png
            [type] => image/png
            [tmp_name] => /tmp/phpiQHIXQ
            [error] => 0
            [size] => 1664972
        )

我也关注这个教程:[http://www.webspeaks.in/2012/08/upload-files-from-android-to-server.html][2]

[2]: http://www.webspeaks.in/2012/08/upload-files-from-android-to-server.html以及许多其他来自googled,但找不到合适的解决方案。


我最近做的就像你的问题 这是解决方案:

从 SD 卡和相机拍摄图像:

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Bitmap scaledphoto = null;
        int height = 100;
        int width = 100;
        if (resultCode == RESULT_OK) {
            if (requestCode == SD_REQUEST) {
                Uri selectedImageUri = data.getData();
                selectedImagePath = getPath(selectedImageUri);
                yourSelectedImage = BitmapFactory.decodeFile(selectedImagePath);
                scaledphoto = Bitmap.createScaledBitmap(yourSelectedImage,
                        height, width, true);
                pImage.setImageBitmap(scaledphoto);

                Uri selectedImageUri1 = data.getData();
                path = getRealPathFromURI(selectedImageUri1);


            }
            if (requestCode == CAMERA_REQUEST) {
                yourSelectedImage = (Bitmap) data.getExtras().get("data");
                scaledphoto = Bitmap.createScaledBitmap(yourSelectedImage,
                        height, width, true);
                profImage.setImageBitmap(scaledphoto);
                Uri selectedImageUri1 = data.getData();
                path = getRealPathFromURI(selectedImageUri1);

            }
        }

现在调用要上传图片的函数:

    String url="http://test.com/uploadimage.php";
    //path is the defined, which is take from camera and sdcard.
   // userid is, which user do you want upload picture.
    UploadImageHttp.sendPost(url, path, userId);

这是上传图像的类:

public class UploadImageHttp {
public static void sendPost(String url, String imagePath,String userId)
        throws IOException, ClientProtocolException {

    String responseBody;
    HttpClient client = new DefaultHttpClient();
    HttpPost request = new HttpPost(url);

    MultipartEntity entity = new MultipartEntity(
            HttpMultipartMode.BROWSER_COMPATIBLE);

    File file = new File(imagePath);
    ContentBody encFile = new FileBody(file,"image/png");

    entity.addPart("images", encFile);
    entity.addPart("UserId", new StringBody(userId));

    request.setEntity(entity);



    ResponseHandler<String> responsehandler = new BasicResponseHandler();
    responseBody = client.execute(request, responsehandler);


    if (responseBody != null && responseBody.length() > 0) {
        Log.w("TAG", "Response image upload" + responseBody);

    }
}

我希望您对这段代码感到满意。我运行成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不使用多部分httppost方法在android中发布图像文件 的相关文章

随机推荐