导航:首页 > IDC知识 > android拍照上传服务器

android拍照上传服务器

发布时间:2021-01-04 22:55:04

1、android怎么将图片传送到服务器,然后将图片保存在mysql数据库中?

一般数据库复中是不保存制图片的,保存的是图片存放路径,图片放到文件夹中,如果放到数据库中数据库会很大,影响读取速度。
如果想放就把字段定义为如:`img` longblob;
然后就可以读取文件流 存储到数据库中了就可以了

2、Android 上传图片到服务器

final Map<String, String> params = new HashMap<String, String>();
params.put("send_userId", String.valueOf(id));
params.put("send_email", address);
params.put("send_name", name);
params.put("receive_email", emails);

final Map<String, File> files = new HashMap<String, File>();
files.put("uploadfile", file);

final String request = UploadUtil.post(requestURL, params, files);

3、android怎样上传图片到服务器

用Apache的base64的jar包。在手抄机端转码成base64格式。然后就是一串String。传递到服务端。服务端也用Apache的jar包。进行转码。转成图片就可以了 查看原帖>>

4、如何调用android的拍照或本地相册选取,然后再实现相片上传服务器

首先是拍照:使用Intent即可,

[java] view plaincopyprint?
01.final String start = Environment.getExternalStorageState();
02.private static final String PHOTOPATH = "/photo/";
03.
04.if(start.equals(Environment.MEDIA_MOUNTED)){
05.Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
06.File file = new File(Environment.getExternalStorageDirectory()+PHOTOPATH);
07.if(!file.exists()){
08.file.mkdirs();
09.}
10.tempphontname = System.currentTimeMillis()+".jpg";
11.buffer.append(Environment.getExternalStorageDirectory()+PHOTOPATH).append(tempphontname);
12.intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(buffer.toString())));
13.startActivityForResult(intent, 1);
14.}
final String start = Environment.getExternalStorageState();
private static final String PHOTOPATH = "/photo/";

if(start.equals(Environment.MEDIA_MOUNTED)){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory()+PHOTOPATH);
if(!file.exists()){
file.mkdirs();
}
tempphontname = System.currentTimeMillis()+".jpg";
buffer.append(Environment.getExternalStorageDirectory()+PHOTOPATH).append(tempphontname);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(buffer.toString())));
startActivityForResult(intent, 1);
}
其次是从本地相册选:依旧是Intent.

如下代码:

[java] view plaincopyprint?
01.if(start.equals(Environment.MEDIA_MOUNTED)){
02. Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
03. getImage.addCategory(Intent.CATEGORY_OPENABLE);
04. getImage.setType("image/jpeg");
05. startActivityForResult(getImage, 0);
06.}
if(start.equals(Environment.MEDIA_MOUNTED)){
Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
getImage.addCategory(Intent.CATEGORY_OPENABLE);
getImage.setType("image/jpeg");
startActivityForResult(getImage, 0);
}

接下来是主要的:因为调用完系统的方法后,回返回到回调方法onActivityResult(int, int, Intent)中,

在里面进行主要的照片上传服务器的操作,

见代码:

[java] view plaincopyprint?
01.@Override
02. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
03. ContentResolver resolver = getContentResolver();
04. if(requestCode==1)//
05. {
06. if(resultCode==Activity.RESULT_OK)
07. {
08. if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
09. {
10.ew Thread(new Runnable()
11. {
12. @Override
13. public void run() {
14.//进行上传操作
15.}
16.}.start();
转载

5、android开发怎么实现拍照上传

最近看了几篇关于Android照相机的一些文章,现在总结如下,直接上源代码把,该说的都用注释说完了

1.java代码

package org.android.test;

import java.io.File;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class Android_mytestActivity extends Activity {
/** Called when the activity is first created. */

// 定义一个button打开照相机,定义一个imageview显示照相机所拍摄的相片;
Button but,upload_image;
ImageView img;
// 获取sd卡根目录地址,并创建图片父目录文件对象和文件的对象;
String file_str = Environment.getExternalStorageDirectory().getPath();
File mars_file = new File(file_str + "/my_camera");
File file_go = new File(file_str + "/my_camera/file.jpg");

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);
but = (Button) findViewById(R.id.my_camare_button);
upload_image=(Button)findViewById(R.id.upload_image);
img = (ImageView) findViewById(R.id.my_img_view);
//拍照
but.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

// 验证sd卡是否正确安装:
if (Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState())) {
// 先创建父目录,如果新创建一个文件的时候,父目录没有存在,那么必须先创建父目录,再新建文件。
if (!mars_file.exists()) {
mars_file.mkdirs();
}

/*//常规情况下,我们这里会 创建子目录,但在这里不用系统拍照完毕后会根据所给的图片路径自动去实现;
if(!file_go.exists())
{
try {
file_go.createNewFile();
} catch (IOException e) {
}}
*/
// 设置跳转的系统拍照的activity为:MediaStore.ACTION_IMAGE_CAPTURE ;
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 并设置拍照的存在方式为外部存储和存储的路径;

intent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(file_go));
//跳转到拍照界面;
startActivityForResult(intent, 0x1);
} else {
Toast.makeText(Android_mytestActivity.this, "请先安装好sd卡",
Toast.LENGTH_LONG).show();
}
}
});
//上传
upload_image.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(file_go.exists())
{
//验证图片存在后就实现,上传功能,得到与服务器的输出流...
//什么URLconnection ,HttpURLconnectio等都可以.......
Toast.makeText(Android_mytestActivity.this, "上传中....",
Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(Android_mytestActivity.this, "请先拍照....",
Toast.LENGTH_LONG).show();
}
}
});

}

//拍照结束后显示图片;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
// 判断请求码和结果码是否正确,如果正确的话就在activity上显示刚刚所拍照的图片;
if (requestCode == 0x1 && resultCode == this.RESULT_OK) {
/* 使用BitmapFactory.Options类防止OOM(Out Of Memory)的问题;
创建一个BitmapFactory.Options类用来处理bitmap;*/
BitmapFactory.Options myoptions=new BitmapFactory.Options();
/* 设置Options对象inJustDecodeBounds的属性为true,用于在BitmapFactory的
decodeFile(String path, Options opt)后获取图片的高和宽;
而且设置了他的属性值为true后使用BitmapFactory的decodeFile()方法无法返回一张
图片的bitmap对象,仅仅是把图片的高和宽信息给Options对象;
*/
myoptions.inJustDecodeBounds=true;
BitmapFactory.decodeFile(file_go.getAbsolutePath(),myoptions);
//根据在图片的宽和高,得到图片在不变形的情况指定大小下的缩略图,设置宽为222;
int height=myoptions.outHeight*222/myoptions.outWidth;
myoptions.outWidth=222;
myoptions.outHeight=height;
//在重新设置玩图片显示的高和宽后记住要修改,Options对象inJustDecodeBounds的属性为false;
//不然无法显示图片;
myoptions.inJustDecodeBounds=false;
//还没完这里才刚开始,要节约内存还需要几个属性,下面是最关键的一个;
myoptions.inSampleSize=myoptions.outWidth/222;
//还可以设置其他几个属性用于缩小内存;
myoptions.inPurgeable=true;
myoptions.inInputShareable=true;
myoptions.inPreferredConfig=Bitmap.Config.ARGB_4444;// 默认是Bitmap.Config.ARGB_8888
//成功了,下面就显示图片咯;
Bitmap bitmat = BitmapFactory.decodeFile(file_go.getAbsolutePath(),myoptions);
img.setImageBitmap(bitmat);

} else {
System.out.println("不显示图片");
}
super.onActivityResult(requestCode, resultCode, data);
}
}
转载

6、有没有能把手机照片上传到服务器的安卓软件

就传口口空间吧。。。有口口空间软件
所谓的自己的服务器是自己买域名那种么? 主机是放自己家还是公司什么的?
那你直接写个网页把上传下载带进去不就好了么= =tomcat php mysql 免费三剑客

7、android手机里面的照片能批量上传到服务器吗?

这个图片存放的位置是根据你的图片来源而定的。一般是放在sdcard下的回某个目录下的,
。我来给答你说下思路:服务端(android手机)这边需要写个工具类,来遍历SD卡下的文件,只显示jpg和png的图片。主类中有个按钮来添加图片,还有一个按钮是用来上传图片,然后写个监听,用来接收服务端发回的消息。...服务端这边写个监听来接收客户端发来的消息,保存发过来的数据流。至于手机上能显示这张图片,只要在写个imageview,把图片资源加载上就ok啦,你可以去网上搜索一下“sd上的文件上传”,希望可以帮到你哦哦

8、请各位大神给我一个Android照相并且上传到服务器的demo。最好能够下载图片和相关参数。万分感谢。。。

http://www.eoeandroid.com/forum-27-1.html上有copy很多相关的demo

9、android上传图片到服务器,求服务器那边和android的Activity的完整代码。

服务器端servlet代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

//获取输入流,是HTTP协议中的实体内容
ServletInputStream sis=request.getInputStream();

File file = new File(request.getSession().getServletContext().getRealPath("/img/"),"img_"+0+".jpg");
for (int imgnum = 0;file.exists();imgnum++)
{
file = new File(request.getSession().getServletContext().getRealPath("/img/"),"img_"+imgnum+".jpg");
}
//缓冲区
byte buffer[]=new byte[1024];
FileOutputStream fos=new FileOutputStream(file);
int len=sis.read(buffer, 0, 1024);
//把流里的信息循环读入到文件中
while( len!=-1 )
{
fos.write(buffer, 0, len);
len=sis.readLine(buffer, 0, 1024);
}
fos.close();
sis.close();
}

android客户端代码:
public static void uploadFile(String imageFilePath)
{
String actionUrl = "http://192.168.1.32:8080/UploadServer/ImageServlet";
try
{
URL url =new URL(actionUrl);
HttpURLConnection con=(HttpURLConnection)url.openConnection();

con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);

con.setRequestMethod("POST");

DataOutputStream ds = new DataOutputStream(con.getOutputStream());
File file = new File(imageFilePath);

FileInputStream fStream = new FileInputStream(file);
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];

int length = -1;

while((length = fStream.read(buffer)) != -1)
{

ds.write(buffer, 0, length);
}

fStream.close();
ds.flush();

InputStream is = con.getInputStream();
int ch;
StringBuffer b =new StringBuffer();
while( ( ch = is.read() ) != -1 )
{
b.append( (char)ch );
}

ds.close();
}
catch(Exception e)
{
e.printStackTrace();
}

}

10、android里的图片怎样上传到服务器并返回显示在手机上?求具体的代码?急用!!!

这个复图片存放的位置是根据你制的图片来源而定的。一般是放在sdcard下的某个目录下的,我基本看明白你写的需求。我来给你说下思路:服务端(android手机)这边需要写个工具类,来遍历SD卡下的文件,只显示jpg和png的图片。主类中有个按钮来添加图片,还有一个按钮是用来上传图片,然后写个监听,用来接收服务端发回的消息。文件的传输就不用我细说了吧...服务端这边写个监听来接收客户端发来的消息,保存发过来的数据流。至于手机上能显示这张图片,只要在写个imageview,把图片资源加载上就ok啦,你可以去网上搜索一下“sd上的文件上传”,有很多类似的文章和代码,可供学习的,有什么不懂的再问吧^_^

与android拍照上传服务器相关的知识