我從相機拍攝了照片並從sdcard中獲取圖像。在這裏我必須將這張照片上傳到php服務器。我能怎麼做 ???請給我一個解決方案。拍攝照片併發送到android服務器使用多部分實體
編輯:
正如我得到的圖像路徑的字符串值:/mnt/sdcard/DCIM/Camera/1382769609416.jpg
我必須插入這些圖像的URL到我的PHP服務器。
在我的數據庫中的值被插入在球場上,如:
images/trucks/mnt/sdcard/DCIM/Camera/1382769609416.jpg
但圖像沒有被上傳到我的PHP server.I「圖像/車/」這條道路上已經檢查。
這是我的服務器端的PHP代碼:
$upload_dir = 'images/trucks/';
$name = $_FILES['TRUCK_PHOTO']['name'];
$tmp_name = $_FILES['TRUCK_PHOTO']['tmp_name'];
$ext = pathinfo($name, PATHINFO_EXTENSION);
$file_path=$upload_dir.$_POST['TRUCK_PHOTO'].".".$ext;
move_uploaded_file($tmp_name, $file_path);
$query = mysqli_query($connect, "insert into tw_trucks (TRUCK_PHOTO) values ('$file_path') ");
什麼是錯在這個代碼?請給我一個解決方案?
爲什麼圖像不能從android上傳到該文件夾?請驗證我的代碼,並給我一個解決方案?但路徑正確存儲在該數據庫中。
這是我的Android端代碼:
在DetailsSpecification的.java:
static String CapturedImageDetails;
String Path = cursor.getString(file_ColumnIndex);
CapturedImageDetails = Path;
在AvailableLocation的.java:
class UploadPhotoDetails extends AsyncTask<Void, Void, String> {
String _response = "";
@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_LOADING);
}
@Override
protected String doInBackground(Void... params) {
_response = postData();
return _response;
}
public String postData() {
String res=null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://192.168.2.45/ImageAndroid/imageupload.php");
try {
nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("TRUCK_PHOTO", DetailsSpecification.CapturedImageDetails));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
result_status = EntityUtils.toString(entity);
res = response.toString();
} catch (ClientProtocolException e) {
} catch (IOException e) {}
return res;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
dismissDialog(DIALOG_LOADING);
}
編輯:
正在錯誤時,點擊提交按鈕的Android形式:
注意:未定義指數:TRUCK_PHOTO在/opt/lampp/htdocs/ImageAndroid/imageupload.php上線
通知:未定義指數:TRUCK_PHOTO在/opt/lampp/htdocs/ImageAndroid/imageupload.php上線
25和26日線是:
$name = $_FILES['TRUCK_PHOTO']['name'];
$tmp_name = $_FILES['TRUCK_PHOTO']['tmp_name'];
好像你必須使用谷歌。 – Selvin
@Selvin我搜索了谷歌並完成了上面的代碼。但我沒有得到捕獲的照片網址的路徑。請再次訪問我的帖子,並給我一個解決方案yaar – user2218667
你需要從base64解碼回php字節數組或使用多部分 – Selvin