laravel - Laravel 和干预 - 如何禁止上传大图像
问题描述
我的 Laravel 应用程序上有这个上传控制器。它允许上传 <2Mb 大小的图像。问题是我有几个 jpg 文件,压缩后为 900KB,打开后为 69MB,尺寸为 6016×4016px,分辨率为 300dpi。
如何检测尺寸和分辨率并停止上传?
<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\File;
class UploadController extends Controller {
public function store()
{
$uploadedimage = array();
$type = Input::get('type');
$table = Input::get('table');
$folder = Input::get('folder');
$extkey = Input::get('extkey');
$record = Input::get('record');
$tipo = Input::get('tipo');
$adduser = Input::get('adduser');
foreach (Input::file('image') as $image) {
$oldname = $image->getClientOriginalName();
$vowels = array("#", "@", "+", "à", "è", "é", "ì", "ò", "ù", ";", ",", "?", "*", '$', "!", "(", ")", "/", '"', "'", "%", "£", "<", ">", "&");
$newname = str_replace($vowels, "", $oldname);
$imagename = time()."-".$newname;
$uploadflag = $image->move('repository/'.$folder, $imagename);
if($uploadflag){
$uploadedimage[] = $imagename;
}
}
foreach ($uploadedimage as $value) {
if($type == 1) {
$tab = explode("|", $extkey);
if($adduser == 1){
DB::table($table)->insert(array(
$tab[1].'_id' => $tab[0],
'active' => 1,
'ordine' => 100,
$record => $value,
'user_id' => Auth::id()
));
} else {
DB::table($table)->insert(array(
$tab[1].'_id' => $tab[0],
'active' => 1,
'ordine' => 100,
$record => $value
));
}
} else {
DB::table($table)->where('id', $extkey)->update(array($record => $value));
}
}
return Response::json(['success' => 'true', 'images' => $uploadedimage ]);
}
解决方案
public function store(Request $request)
{
$request->validate([
'image' => 'dimensions:min_width=100,min_height=200',
]);
}
推荐阅读
- python - 在 dart/Flutter 中是否有等效于 python 的 global 关键字?
- amazon-cognito - 自定义属性存储在 AWS Cognito 中的什么位置?
- azure - Azure Active Directory SCIM 映射
- istio - Istio 指标目的地未知
- class - 我需要帮助创建一个名为 Automotive 的类,该类对 vin 具有价值,使模型颜色和为它们制作方法
- sql-server - 如何在 MS SQL Server 中使用 Spring JDBCNamedParameterTemplate 插入 current_timestamp?
- python - 单击表格单元格时如何在新窗口中打开QWebEngineView?
- c++ - 在 C++ 中为全局变量赋值
- numpy - 关于曲线拟合代码中asterik的问题
- css - Elementor:具有收缩包装效果的柔性列