我以前在服务器上上传图像没有任何问题,但是在安装Spatie larave-image-optimizer之后,我遇到了一些问题。我可以上传小于1MB的任何图像,但是任何超出的大小都会破坏它
我试图通过控制台记录日志或转储错误,以便可以了解发生了什么,但是我不明白错误消息告诉我什么。
$validate = Validator::make($request->all(), [
'docs.*' => [
'sometimes',
'image',
'mimes:jpeg,png,jpg,gif,svg',
'max:51200',
],
]);
if ($validate->fails()) {
return response(['error' => 'Error!'], 422);
}
if ($request->file('docs')) {
foreach ($request->file('docs') as $doc => $image) {
$image->storeAs(
'/folder/' . $id , //I get this id from the params
$image->getClientOriginalName(),
'public'
);
}
}
这条路线经过图像优化器中间件
Route::middleware('optimizeImages')->group(function () {
Route::post("url", "...Controller@store");
});`
我收到此错误:
exception: "InvalidArgumentException"
file: "{app_path}\vendor\spatie\image-> optimizer\src\Image.php"
line: 14
message: "`` does not exist"
为什么1MB的映像会上浮,而2MB以上的映像却不会?以及如何解决此问题?
请记住,在安装此软件包之前,一切正常。我上传了许多4MB以上的图片,但是我需要对其进行优化,以便有效地使用服务器的磁盘。
编辑#1 如果我不使用中间件,则会出错:
exception: "RuntimeException"
file: "{app_path}\vendor\symfony\var-dumper\Server\Connection.php"
line: 63
message: "stream_socket_sendto(): A request to send or receive data was
disallowed because the socket is not connected and (when sending on a
datagram socket using a sendto call) no address was supplied.↵↵"
答案 0 :(得分:3)
转到您的php.ini
文件并进行更改
upload_max_filesize = 10M
post_max_size = 10M
之后,请确保您重新启动apache服务器
答案 1 :(得分:2)
在您的php.ini
中更改值,例如-
memory_limit=32M
upload_max_filesize=24M
post_max_size=32M
重新启动服务器。尝试使用composer update
。如果不起作用,请删除您的spatie/laravel-image-optimizer
,然后再次安装-composer require spatie/laravel-image-optimizer
,然后发布php artisan vendor:publish --provider="Spatie\LaravelImageOptimizer\ImageOptimizerServiceProvider"