使用干预 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
参数来获取您的请求。
<?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
参数来获取您的请求。