How to check file is uploaded or not in laravel

2019-08-24 10:22发布

问题:

I am uploading an image file to the input file ImageUpload.I need to check if file has been uploaded then create a unique filename and save it on the server.

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

回答1:

You can check if your file variable exists as

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

But, as per official documentation, to check whether file upload is successful without any errors,

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

Laravel is extensive, it allows you to save file without writing extra call to Storage etc. as

$filePath = $request->ImageUpload->storeAs('DIRECTORY_IN_STORAGE', 'CUSTOM_FILE_NAME'); // it return the path at which the file is now saved


回答2:

try this one

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);
        }
}


回答3:

Try this.

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);                            
}