Загрузить изображение на сервер PHP Android

Я потерялся прямо сейчас, пытаясь загрузить изображение на свой сервер. Я могу сделать снимок и получить свое местоположение на устройстве Android. У меня есть следующий код для загрузки файла на сервер:

public Boolean postFunction(File image) { String tag = "postFunction"; HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(UPLOAD_URL); try { MultipartEntity entity = new MultipartEntity(); entity.addPart("type", new StringBody("photo")); entity.addPart("data", new FileBody(image)); httppost.setEntity(entity); HttpResponse response = httpclient.execute(httppost); Log.i(tag, "picture was uploaded " + response.toString()); return true; } catch (ClientProtocolException e) { Log.e(tag, "Client: " + e.toString()); return false; } catch (IOException e) { Log.e(tag, "IO: " + e.toString()); return false; } } 

Я передаю файл изображения этой функции, и он загружает. Однако ошибка лежит на сервере, я полагаю.

Вот мой PHP-код:

  public function upload() { //$type = $this->input->post('type'); //$data = $this->input->post('data'); $base = $_REQUEST['data']; echo $base; // base64 encoded utf-8 string $binary = base64_decode($base); // binary, utf-8 bytes header('Content-Type: bitmap; charset=utf-8'); // print($binary); //$theFile = base64_decode($image_data); $file = fopen('./test.jpg', 'wb'); fwrite($file, $binary); fclose($file); echo '<img src=test.jpg>'; } 

Файл будет затронут, но останется пустым. Я что-то упустил? Пожалуйста, помогите, я попробовал Googling, но придумал разные результаты, которые мне не очень помогли.

Solutions Collecting From Web of "Загрузить изображение на сервер PHP Android"

Здесь вы можете проверить один очень хороший учебник.

Также попробуйте следующий код,

 public class TryprojectActivity extends Activity { InputStream is; int pic_count = 0; Bitmap bitmap=null; FileInputStream in1,in2,in3; BufferedInputStream buf; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); try { in1 = new FileInputStream("/sdcard/1.jpg"); } catch (FileNotFoundException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } try { in2 = new FileInputStream("/sdcard/2.jpg"); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { in3 = new FileInputStream("/sdcard/3.jpg"); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } Bitmap bitmapOrg1 = BitmapFactory.decodeStream(in1); ByteArrayOutputStream bao1 = new ByteArrayOutputStream(); bitmapOrg1.compress(Bitmap.CompressFormat.JPEG, 90, bao1); byte [] imagearray1 = bao1.toByteArray(); String ba1=Base64.encode(imagearray1); Bitmap bitmapOrg2 = BitmapFactory.decodeStream(in2); ByteArrayOutputStream bao2 = new ByteArrayOutputStream(); bitmapOrg2.compress(Bitmap.CompressFormat.JPEG, 90, bao2); byte [] imagearray2 = bao2.toByteArray(); String ba2=Base64.encode(imagearray2); Bitmap bitmapOrg3 = BitmapFactory.decodeStream(in3); ByteArrayOutputStream bao3 = new ByteArrayOutputStream(); bitmapOrg3.compress(Bitmap.CompressFormat.JPEG, 90, bao3); byte [] imagearray3 = bao3.toByteArray(); String ba3=Base64.encode(imagearray3); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3); nameValuePairs.add(new BasicNameValuePair("image1",ba1)); nameValuePairs.add(new BasicNameValuePair("image2",ba2)); nameValuePairs.add(new BasicNameValuePair("image3",ba3)); try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://helpdesk.cispl.com/upload_file.php"); UrlEncodedFormEntity obj = new UrlEncodedFormEntity(nameValuePairs); obj.setChunked(true); httppost.setEntity(obj); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); //is = entity.getContent(); httpclient.getConnectionManager().shutdown(); } catch(Exception e){ //CommonFunctions.writeLOG(ctx.getClass().toString(), e.toString()); //CommonFunctions.showToast(ctx, "Unable to post captured image file: " + //e.toString()); } } 

Если вы используете apache / php на платформе на основе unix, убедитесь, что ваш сервер Apache имеет права на запись в каталог, в котором он пытается хранить файлы (в соответствии с вашим текущим кодом, тем же самым каталогом, в котором находится PHP-скрипт). В качестве быстрого теста сделайте chmod 0777 . в директории, в которой находится ваш скрипт, и посмотрите, правильно ли загружено изображение.