如何上传文件(Laravel)

时间:2017-08-02 09:27:19

标签: php html database laravel

我想在Laravel上传文件:

  1. 我把这段代码放在路线

    Route::post('upload', 'myconttest@test')->name('upload');
    
  2. 并将此代码放入控制器

    function test(Request $request){
        $file=$request->file('myfile');
        $filename=$file->getClinetOriginalName();
        //  $projectname;
        $path='files/';
        $file->move($path,$filename);
    }
    
  3. 我在公共文件中创建一个文件夹。代码运行时没有错误,但文件未保存。

4 个答案:

答案 0 :(得分:0)

  1. 确保您的表单已启用上传文件。因此,请检查是否设置了以下属性。

    <form action"" 'files' => true>

  2. 使用以下命名空间

    use Illuminate\Support\Facades\Input;

  3. 然后试试这个:

    $file = Input::file('myfile'); $filename = $file->getClinetOriginalName(); move_uploaded_file($file->getPathName(), 'your_target_path/'.$filename);

答案 1 :(得分:0)

它的工作代码请看这个

 public function store(Request $request)
    {

         $checkval = implode(',', $request->category);
         $input = $request->all();
         $input['category'] = $checkval;

         if ($request->hasFile('userpic')) {
          $userpic = $input['pic'];
          $file_path = public_path("avatars/$userpic");
          if(File::exists($file_path)) {
              File::delete($file_path);
          }
          $fileName = time().$request->userpic->getClientOriginalName();
          $request->userpic->move(public_path('avatars'), $fileName);
          $input['userpic'] = $fileName;
          Product::create($input);
          return redirect()->route('productCRUD.index')->with('success','Product created successfully');
       }    
    }

答案 2 :(得分:0)

我想你可以试试这个:

首先,您将文件夹权限授予公用文件夹

中的文件文件夹
function test(Request $request){
    $file=$request->file('myfile');
    $filename=$file->getClinetOriginalName();
    $file->move(public_path().'/files/', $filename);
}

希望这对你有用!!!

答案 3 :(得分:0)

在控制器测试功能中,您需要提供文件夹的公共路径,如

$path = public_path('files/');

用于在给定的公用文件夹路径上移动文件。