gpt4 book ai didi

php - Laravel 干预/图像调整大小返回 null。拉维尔 5

转载 作者:搜寻专家 更新时间:2023-10-31 21:27:51 26 4
gpt4 key购买 nike

我想不通。当我像这样调整上传图片的大小时,

public function up(Request $request) {

$user = $request->user();
$image= $request->file('images');
if(!empty(($image))){
$files = Input::file('images');
foreach($files as $file) {
if(!empty($file)){
$new_file = Image::make($file)->resize(200,200);
var_dump($new_file);exit;

var_dump 返回这个:

object(Intervention\Image\Image)#241 (9) {
object(Intervention\Image\Imagick\Driver)#242 (2) {
["decoder"] object(Intervention\Image\Imagick\Decoder)#243 (1) {
}
["encoder"] object(Intervention\Image\Imagick\Encoder)#244 (4) {
["result"] NULL
["image"] NULL
["format"] NULL
["quality"] NULL
}
}
object(Imagick)#237 (0) {
}
["backups":protected] array(0) {
}
["encoded"] ""
["mime"] "image/jpeg"
["dirname"] "/Applications/MAMP/tmp/php"
["basename"] "phpJcAyxV"
["extension"] NULL
["filename"] "phpJcAyxV"
}

result, image, format, quality 都是空的。我在这里缺少什么?

更新这是 HTML:

{!! Form::open(array('action'=>'FileController@up','files'=>true,))!!}
<div class='row'>
<div class='col-md-2'>
{!! Form::label('images','Profile Picture')!!}
</div>
<div class='col-md-2 profile-pic'>
@if(isset($pic))
<img src='{{$pic}}'/>
@else
<img src='/images/user-icon.jpg'/>
@endif
</div>
<div class='col-md-6'>
{!! Form::file('images[]') !!}
{!! Form::hidden('category','profile')!!}
{!! Form::submit('Upload',['class'=>'form-control btn btn-md btn-info','style'=>'width:100px; margin-top:50px;'])!!}
</div>
</div>
{!! Form::close()!!}

也许我不应该使用数组?

最佳答案

好的,所以我仔细研究了您的问题。编码器值为空,因为您还没有设置它们。我假设您不打算对它们进行编码。你仍然确实有一个形象。您的服务器已成功接收到它。这只是意味着您没有对其进行编码。

另外,在这段代码中:

public function up(Request $request) {

$user = $request->user();
$image= $request->file('images');

if(!empty(($image))) {
$files = Input::file('images');

您不需要使用 Input facade 来抓取图像,因为当你这样做时你已经得到了所有图像 $request->file('images'); .

换句话说,Input::file('images')$request->file('images') 完全相同.

此外,与其检查它是否为空,我认为使用 hasFile 更具可读性。方法,所以我认为这样的东西更具可读性:

public function up(Request $request) {

$user = $request->user();

if($request->hasFile('images')) {

$files = $request->file('images');

总的来说,它只是:

public function up(Request $request) {

$user = $request->user();

if($request->hasFile('images')) {

$files = $request->file('images');

foreach ($files as $file) {
$new_file = Image::make($file)->resize(200,200);
}
}
}

再一次,当你dd($new_file)编码器属性仍然是假的,但你仍然有一个图像。例如,如果您 return $new_file->response(); ,您应该会看到您设置的新尺寸的图像。

如果您确实想对图像进行编码,Intervention Image 包提供了一个 encode方法。

$new_file = Image::make($file)->resize(200,200)->encode();

关于php - Laravel 干预/图像调整大小返回 null。拉维尔 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33662311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com