代码之家  ›  专栏  ›  技术社区  ›  Kalana Mihiranga

尝试在本地存储中存储base64 pdf文件

  •  0
  • Kalana Mihiranga  · 技术社区  · 6 年前

    我试图将保存的base64 PDF文件存储到我在Laravel的公用文件夹中。我写了这个控制器来存储文件。

    我尝试用这个控制器来解码我的PDF文件并将其存储在上传文件夹中。此请求提供base64 PDF文件。

    if($request->get('cv')){
    
    $file = $request->get('cv');                
    $ext = $file->getClientOriginalExtension();
    $newName = rand(100000,1001238912).".".$ext;
    $base64 = base64_encode($file);
    $file->move('uploads/file', $base64);
    $users->cv = $base64; 
    
    }
    

    但这个方法显示了这个错误。

    Call to a member function move() on string
    

    如何解决此问题?

    3 回复  |  直到 5 年前
        1
  •  0
  •   utdev vijayP    6 年前

    $request->get('cv'); 将返回一个字符串而不是文件,这就是为什么move()不起作用。

    而不是

    $REQUEST->获取(“cv”);

    尝试使用

    $request->file('cv');

        2
  •  0
  •   Md.Sukel Ali    6 年前

    您应该使用文件方法来获取输入文件,

    if($request->file('cv')){
    
        $file = $request->file('cv');                
        $ext = $file->getClientOriginalExtension();
        $newName = rand(100000,1001238912).".".$ext;
        $base64 = base64_encode($file);
        $file->move('uploads/file', $base64);
        $users->cv = $base64; 
    }
    
        3
  •  0
  •   Kalana Mihiranga    5 年前

    这样回答正确

    if($request->get('cv')){
       $file = $request->get('cv');
       $base = base64_decode($file);  
       $base64 = time().'.' . explode('/', explode(':', substr($file, 0, strpos($file, ';')))[1])[1];
       $destinationPath = public_path() . "/uploads/file/" . $base64;             
       file_put_contents($destinationPath, $base);
       $users->cv = $base; 
     }