導航:首頁 > 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拍照上傳伺服器相關的知識