2

一旦我在 ImageView 中有图像,如何以最简单的方式将图像发送到 Web 服务器?

我使用这个从图库中获得了图像:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK)
        try {
            // We need to recyle unused bitmaps
            if (bitmap != null) {
                bitmap.recycle();
            }
            InputStream stream = getContentResolver().openInputStream(
                    data.getData());
            bitmap = BitmapFactory.decodeStream(stream);
            stream.close();
            imageView.setImageBitmap(bitmap);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    super.onActivityResult(requestCode, resultCode, data);
}

我已将该图像设置为我的 imageView。我这样做是为了向上传者显示图像的预览。现在如何将该图像上传到网络服务器(最好的最简单的方法)谢谢

4

2 回答 2

3

我没有用 PHP 做到这一点,而是用 .NET 使用 base64 字符串发送了图像。

将您的图像转换为 base64 并将此字符串发送到您的服务器上。您的服务器会将此 base64 转换为原始图像

将图像转换为字节 [] 尝试以下代码

private void setPhoto(Bitmap bitmapm) {
        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmapm.compress(Bitmap.CompressFormat.JPEG, 100, baos); 

            byte[] byteArrayImage = baos.toByteArray();
            String imagebase64string = Base64.encodeToString(byteArrayImage,Base64.DEFAULT);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
于 2012-05-21T08:53:28.373 回答
0

这是来自此 URL 的代码(我在评论中指出了 -如何使用 http 将 Android 中的文件从移动设备发送到服务器?):

String url = "http://yourserver";
File file = new File(Environment.getExternalStorageDirectory(),
        "yourfile");
try {
    HttpClient httpclient = new DefaultHttpClient();

    HttpPost httppost = new HttpPost(url);

    InputStreamEntity reqEntity = new InputStreamEntity(
            new FileInputStream(file), -1);
    reqEntity.setContentType("binary/octet-stream");
    reqEntity.setChunked(true); // Send in multiple parts if needed
    httppost.setEntity(reqEntity);
    HttpResponse response = httpclient.execute(httppost);
    //Do something with response...

} catch (Exception e) {
    // show error
}

我猜很简单。而不是FileandFileInputStream(file)我认为你可以使用 Yourstream类型InputStream- 但我不确定......

于 2012-05-21T09:45:22.253 回答