Как проверить, загружен файл или нет в laravel - PullRequest
0 голосов
/ 24 декабря 2018

Я загружаю файл изображения во входной файл ImageUpload . Мне нужно проверить, был ли загружен файл, затем создать уникальное имя файла и сохранить его на сервере.

$file = $request->file('ImageUpload');
$filename=uniqid($user->id . '_'    ).".".$file->getClientOriginalExtension();
Storage::disk('public')->put($filename,File::get($file));

Ответы [ 3 ]

0 голосов
/ 24 декабря 2018

Попробуйте это.

if($request->hasFile('ImageUpload'))
{
 $filenameWithExt    = $request->file('ImageUpload')->getClientOriginalName();
 $filename           = pathinfo($filenameWithExt, PATHINFO_FILENAME);
 $extension          = $request->file('ImageUpload')->getClientOriginalExtension();
 $fileNameToStore    = $filename.'_'.time().'.'.$extension;
 $path               = $request->file('ImageUpload')->storeAs('public', $fileNameToStore);                            
} 
0 голосов
/ 24 декабря 2018

Вы можете проверить, существует ли ваш файл variable как

if($request->hasFile('ImageUpload')){ }

Но, согласно официальной документации , чтобы проверить, успешно ли загрузка файла произошла без ошибок,

if($request('ImageUpload')->isValid()){ }

Обширный Laravel, он позволяет вам сохранять файл без записи дополнительного вызова в Storage и т. Д. Как

$filePath = $request->ImageUpload->storeAs('DIRECTORY_IN_STORAGE', 'CUSTOM_FILE_NAME'); // it return the path at which the file is now saved
0 голосов
/ 24 декабря 2018

попробуйте это

if($request->hasFile('ImageUpload')) { //check file is getting or not..
        $file = $request->file('ImageUpload');
        $filename=uniqid($user->id . '_'    ).".".$file->getClientOriginalExtension(); //create unique file name...
        Storage::disk('public')->put($filename,File::get($file));
        if(Storage::disk('public')->exists($filename)) {  // check file exists in directory or not
           info("file is store successfully : ".$filename);            
        }else { 
           info("file is not found :- ".$filename);
        }
}
...