使用干预 laravel 中的多个文件上传

Multiple file upload in laravel using intervention

<?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

你将 var 定义为 $filename = $_FILES['imagefile']['name']; 那不就得到一个字符串值吗?并且字符串不可读。让我们试试 $filename = $_FILES['imagefile']

更新

您从 filename 循环字符串值,它不可读 image.You 需要一些其他的东西来处理图像上传。

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 参数来获取您的请求。