Как загрузить изображение на сервер используя php laravel? - PullRequest
0 голосов
/ 28 сентября 2018

Я пытался написать API для загрузки изображения на сервер, но все тщетно.Я использую инфраструктуру laravel. И попробовал этот пример , но он не работает.

Также во время тестирования API от POSTMAN я передал mutlipart / form-data в заголовках.И на вкладке «Тело» выбрал форму-данные, добавил ключ = изображение, изменил его текст на файл и добавил изображение. Но когда я тестирую API, не знаю почему, но запрос изображения пустой.

Возможно, я передаю что-то неправильно в POSTMAN или что-то не так в моем коде, пожалуйста, помогите мне.

Вот мой код API

public function upload(Request $request){

if ($request->hasFile('image')) {
   $image = $request->file('image');
   $name = md5(time().uniqid()).".png";
   $destinationPath = base_path() . '/public/uploads/images/' . $name;

   move_uploaded_file($name, $destinationPath);

   return response()->json(['title'=>"image is uploaded"]);
   }

}

И мой код контроллера:

Route::post('uploadImage','TestController@upload');

Снимок экрана с запросом почтальона. Пожалуйста, скажите мне, если я передаю что-то неправильно в заголовке или теле.

enter image description here

Такжеконсоль показывает эту ошибку Missing boundary in multipart/form-data POST data in Unknown on line 0

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете использовать основной код PHP для загрузки файлов.В моем проекте laravel я использовал следующий код для загрузки файла.

if(isset($_FILES["image"]["type"]))
{
  $FILES = $_FILES["image"];
  $upload_dir = storage_path('app/public/document/');

  // create folder if not exists
  if (!file_exists($upload_dir)) {
    mkdir($upload_dir, 0777, true);
  }

  //Send error 
  if ($FILES['error'])
  {
    return response()->json(['error'=>'Invalid file']);
  }

  //Change file name
  $target_file = md5(time().uniqid());
  $imageFileType = pathinfo($FILES["name"],PATHINFO_EXTENSION);
  $target_file = $upload_dir.$target_file.'.'.$imageFileType;

  //Upload file
  if (move_uploaded_file($FILES["tmp_name"], $target_file))
  {
    return response()->json(['success' => 'File uploading successful']);
  }
  else
  {
    return response()->json(['error'=>'Invalid file']);
  }
}else{
 return response()->json(['error'=>'Invalid file']);
}

Ниже приведен скриншот, когда я печатаю $ _FILES в начале функции enter image description here

...