【问题标题】:Avoid file collision laravel避免文件冲突 laravel
【发布时间】:2018-03-11 19:01:27
【问题描述】:

我想知道如何避免 Laravel 中的文件冲突。假设我有两个具有相同文件名的用户,并且都受到影响,因为其中一个更改了文件,我该如何避免这种情况。这是我的代码

 $file = $request->file('file');
      $myfilename = $vid->getClientOriginalName().uniqid();
      $mypath = $file->storeAs(
'video',
$myfilename);
      $location = public_path('/allvids',$myfilename);
      $file->move($location);
      $file->profile = $myfilename;

【问题讨论】:

    标签: laravel-5 laravel-filesystem


    【解决方案1】:

    作为一般规则,您应该使用生成的文件名保存文件。将实际文件名存储在数据库中,然后按原样提供它没有任何问题,但通常,您应该生成一个。有几种方法可以做到这一点。

    time() 使用 unix 时间戳

    uniqid()生成唯一ID

    我个人建议第二个。

    还有,你在做;

    $file->store('video', $myFilename)
    

    你想要的是;

    $file->storeAs('video', $myFilename)
    

    store() 方法将使用文件的原始文件名。

    【讨论】:

    • 我尝试了 uniqid 很多次它不起作用它仍然会更改其他人的文件。我将更新我的问题并向您展示我的所作所为。
    • 更新了我的答案,看看
    • 我也试过 storeAS 很多次。仍然没有任何改变。
    • 那我不知道是什么问题。如果你使用uniqid()storeAs() 应该没有问题。
    • 我也不知道。我刚刚更新了我的代码。我是不是喜欢做错事导致这疯狂。
    猜你喜欢
    • 2015-03-21
    • 2014-08-13
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多