Загрузка изображения с Android (с асинхронным Http-клиентом Android) на сервер laravel

Я пытаюсь загрузить изображение с помощью метода http post с устройства Android на сервер laravel. но Публикация изображения не работает, параметр сообщения (включая файл изображения), похоже, не отправляется правильно.

я использую асинхронный Http-клиент Android (http://loopj.com/android-async-http/), чтобы опубликовать изображение с Android. и вот код:

Андроид:

RequestParams params = new RequestParams();
    params.put("id_personil", session.getUID());
    params.put("id_deskel", session.getDID());
    params.put("jenis", jenisLap.getSelectedItemPosition());
    params.put("judul", judul.getText().toString());
    params.put("lokasi", lokasi.getText().toString());
    params.put("uraian", uraian.getText().toString());
    try{
        for (int a =0; a<imageUrl.size();a++){
            params.put("pic[]", new File(Environment.getExternalStorageDirectory().getPath()+imageUrl.get(0)));
        }
    }catch(FileNotFoundException e){e.printStackTrace();}

    AsyncHttpClient client = new AsyncHttpClient();
    client.post("http://10.0.3.2:8888/api/v1/lapgiat", params, new JsonHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            super.onSuccess(statusCode, headers, response);
            ShowAlert(response.toString(), "text");
        }

        @Override
        public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
            super.onFailure(statusCode, headers, throwable, errorResponse);
            ShowAlert("Error", "error");
        }
    });

Ларавель

if(Request::has('pic')){
        $files = Input::file('pic');
        //dd($files);
        $det_pic = [];
        foreach ($files as $file) {
            $filename = rand(11111,99999).'.'.$file->getClientOriginalExtension();
            $file->move('uploads', $filename);
            $det_pic[] = ['id_lapgiat'=>$id, 'file'=>$filename];
        }
        DB::table('bah_det_lapgiat_photo')->insert($det_pic);
        $output['has picture'] = true;
    }

Может кто-нибудь помочь мне?


person Atha Samidh Sevenfoldism    schedule 09.06.2015    source источник
comment
Samidh Sevenfoldisn, вы можете решить проблему? у меня такая же ошибка   -  person    schedule 09.07.2015
comment
нет, я не могу, наконец-то я перешел на codeigniter :D   -  person Atha Samidh Sevenfoldism    schedule 24.07.2015


Ответы (1)


Проверьте с помощью клиента cURL или POSTMAN и посмотрите, работает ли он там. Если нет, вы можете использовать этот пример кода для laravel.

//Checks if request has file or not
    if ($request->hasFile('pic')) {
//checks if file is uploaded or not
            if ($request->file('pic')->isValid()) {
                $extension = $request->file('pic')->getClientOriginalExtension();
                $imageName = str_random(60);
                $request->file('pic')->move(base_path() . 'file/save/location', $imageName.".".$extension);
                }
    }
person viswanath608    schedule 04.03.2016