Я знал, что этот вопрос может показаться дублирующим, но я в беспорядке.
Я новичок в Laravel.исходя из фона PHP.Я использую код ниже для проверки изображения в Laravel 5.7.8.это делает проверку, проверяя имя расширения файла, размер и т. д. Теперь я хочу проверить mimetype как способ обеспечения загрузки файла, поэтому код
$rules= [
'file' => 'mimes:jpeg,bmp,png,gif'
];
$x = $request->all();
$validator=Validator::make($x, $rules);
if ($validator->passes()){
Session::flash('message','File Uploads successful.');
}else{
Session::flash('message','Invalid File type .');
}
Моя проблема в том, что он не возвращает сообщение об ошибке, например Неверный тип файла при загрузке неверного файла.
Ниже описано, как я добавил его в свой главный контроллер.Все остальные проверки в порядке.Я просто хочу, чтобы код печатал Неверный тип файла всякий раз, когда загружается файл, который не является изображением
<?php
namespace App\Http\Controllers;
use Session;
use Validator;
use Illuminate\Http\Request;
class PictureController extends Controller{
public function picture(){
return view('picture');
}
public function uploadFile(Request $request){
if ($request->input('submit') != null ){
$file = $request->file('file');
// File Details
$filename = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$tempPath = $file->getRealPath();
$fileSize = $file->getSize();
$mimeType = $file->getMimeType();
//dd($mimeType = $file->getMimeType());
// Valid File Extensions
$valid_extension = array("jpg","jpeg","png");
//validate files uploads mimetype
$rules= [
'file' => 'mimes:jpeg,bmp,png,gif'
];
$x = $request->all();
$validator=Validator::make($x, $rules);
// 2MB in Bytes
$maxFileSize = 2097152;
// Check file extension
if(in_array(strtolower($extension),$valid_extension)){
// validate mimetype
if ($validator->passes()){
// Check file size
if($fileSize <= $maxFileSize){
// File upload location
$location = 'images';
// Upload file
$file->move($location,$filename);
Session::flash('message','Upload Successful.');
}else{
Session::flash('message','File too large. File must be less than 2MB.');
}
//validator starts
}else{
Session::flash('message','Invalid File type');
}
//validator ends
}else{
Session::flash('message','Invalid File Extension1.');
}
}
// Redirect to index
return redirect()->action('PictureController@picture');
}
}