我正在尝试将图片从Android图库上传到服务器。我所做的所有沟通都是使用Object Streams,但现在我不确定我会如何做到这一点。哦,我已经使用输入流来下载图片,您可以使用URL直接指向图片。如果有人能指出我在正确的方向,将不胜感激。Android从图库到服务器上传图片
谢谢
我正在尝试将图片从Android图库上传到服务器。我所做的所有沟通都是使用Object Streams,但现在我不确定我会如何做到这一点。哦,我已经使用输入流来下载图片,您可以使用URL直接指向图片。如果有人能指出我在正确的方向,将不胜感激。Android从图库到服务器上传图片
谢谢
对于上传图像从您的应用程序的服务器你可以按照以下教程:
以上两个网址将解释如何将图像从应用程序上传到服务器。
要从您的照片库中上传图片,您需要该图片文件的路径,并在第一个网址中用/data/file_to_send.mp3
替换获得的路径。
为了从移动百宝箱,你可以按照下面的代码获取图像的路径:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1 = (Button)findViewById(R.id.Button01);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
openGallery(SELECT_FILE1);
}
});
}
public void openGallery(int req_code) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,
"Select file to upload "), req_code);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri selectedImageUri = data.getData();
if (requestCode == SELECT_FILE1) {
selectedPath1 = getPath(selectedImageUri);
System.out.println("selectedPath1 : " + selectedPath1);
}
if (requestCode == SELECT_FILE2) {
selectedPath2 = getPath(selectedImageUri);
System.out.println("selectedPath2 : " + selectedPath2);
}
tv.setText("Selected File paths : " + selectedPath1 + "," + selectedPath2);
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
下载图像,你可以做下面的代码。
ImageView image = (ImageView)findViewById(R.id.image);
if(!ImageUrl.equals("no image")) {
try {
image.setImageDrawable(grabImageFromUrl(ImageUrl));
} catch(Exception e) {
}
}
private Drawable grabImageFromUrl(String url) throws Exception {
return Drawable.createFromStream((InputStream)new URL(url).getContent(), "src");
}
请注意data.getData();将不适用于三星设备。使用预先插入的Uri代替 – Droidman 2012-12-13 21:52:13
它至少适用于最新的设备! – 2013-04-29 10:20:24
@AdnanMulla谢谢......对于确认,但需要告诉你,当我发布此评论。我已经在所有设备上进行了测试,然后只有我在这里发表了我的评论...所以如果它真的帮助你,请给出一个投票,这样它也可以帮助其他 – 2013-04-29 13:52:29
这不是太广,它已经确实一个很大的错误,关闭这个问题 – mok 2015-11-15 11:58:11