在 public 文件夹中上传图片

Upload image in public folder

我正在尝试使用 laravel 5.4 在数据库中插入图像。有用。但是当我搜索那个目录时,它并没有出现在那里。我还想验证只有图像应该上传和大小。 感谢提前。

我的控制器功能在这里

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use Hash;
use App\User;
class regController extends Controller
{

public function create(Request $request)
{
    $this-> validate(request(),[
    'name' => 'required',
    'email'=> 'required',
    'type' => 'required',
    'image' => 'required',
    'password' => 'required|confirmed|min:6', 
    ]);

    $request['password'] = bcrypt($request -> password);

    $User = new User($request->input()) ;
    if($file = $request->hasFile('image')) {

        $file = $request->file('image') ;

        $fileName = $file->getClientOriginalName() ;
        return Storages::putFile('public/images',$request->file('image'));
        $destinationPath = public_path().'images/' ;
        $file->move($destinationPath,$fileName);
        $User->image = $fileName ;
    }

    $user = 
          User::create(request(['name','email','type','image','password']));
    return redirect('login');
}

我认为你正在尝试这样做:

public function fileUpload(Request $request)

{

    $this->validate($request, [

        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',

    ]);


    $image = $request->file('image');

    $input['imagename'] = time().'.'.$image->getClientOriginalExtension();

    $destinationPath = public_path('/images');

    $image->move($destinationPath, $input['imagename']);


    $this->postImage->add($input);


    return back()->with('success','Image Upload successful');

}

试试这个:

// Validation
$this->validate($request, [
   'image' => 'required|image|mimes:jpeg,bmp,png|max:10240' // size in kelobytes this equals 10 mb
]);

 $User = new User() ;
 $User->password = bcrypt($request->password);
 $User->name = $request->name;
 $User->type = $request->type;
 $User->email = $request->email;
 $filename = $this->getFileName($request->image);
 $request->image->move(base_path('public/images'), $filename);
 $User->image = $fileName;
 $$User->save();
 return back()->with('success','Image Upload successful');

我只是忘了告诉你如何实现 getFileName 函数来生成一个唯一的文件名抱歉,在你的控制器中你可以将它定义为受保护的方法,如下所示:

protected function getFileName($file)
{
   return str_random(32) . '.' . $file->extension();
}