Загрузка нескольких файлов в laravel с использованием вмешательства - PullRequest
0 голосов
/ 12 февраля 2020
<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Image;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Storage;

class TestController extends Controller
  {
 /**
  * Show the application dashboard.
  *
 * @return \Illuminate\Http\Response
  */
  public function index(Request $req)
 {

 if(isset($_POST['upload'])){
    $filename = $_FILES['imagefile']['name'];
   foreach($filename as $file){

   $withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $file);
    $location = public_path('/images/test/' . $withoutExt);
   $img = Image::make($file)->resize('720', '404')->save($location.'.jpg');
  }
  }}}

Я использовал $img = Image::make(Input::file('imagefile'))->resize('720', '404')->save($location.'.jpg'); для одного файла, и он работает нормально, но для загрузки нескольких файлов я использую $file вместо Input, тогда он показывает ошибку Image source not readable

1 Ответ

0 голосов
/ 12 февраля 2020

Вы определили var как $filename = $_FILES['imagefile']['name'];, так что бы просто получить строковое значение? И строка не читается. Давайте попробуем просто $filename = $_FILES['imagefile']

ОБНОВЛЕНИЕ

Вы l oop строковое значение из filename, и это не читаемое изображение. Вам нужно еще несколько вещей для работы с загрузкой изображений.

if($req->hasfile('imagefile'))
{
    foreach($req->file('imagefile') as $file)
    {
        $withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $file->getClientOriginalName());
        $location = public_path('/images/test/' . $withoutExt);
        $img = Image::make($file)->resize('720', '404')->save($location.'.jpg');
    }
}

И поскольку вы используете Laravel, я предлагаю вам просто использовать параметр $req для получения вашего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...