2016-10-04 44 views
1

Laravel 5.3我上传文件:这样Laravel文件名数据库

public function upload(Request $request, User $user, $directory) 
{ 
    if($request->hasFile('attachment')) 
    { 
     $attachments = $request->file('attachment'); 
     foreach ($attachments as $attachment) { 
      $fileName = $attachment->store('users/' . $user->id . '/' . $directory); 
      $file = new File; 
      $file->path = $fileName; 
      $file->user_id = $user->id; 
      $this->files()->save($file); 
     } 
    } 
} 

所以它的存储是这样的:

enter image description here

如何存放一个随机名称(路径)而不是整个路径?

(随机唯一的名称类似:7b11ae012907b5811cb6985d39e16052

+0

你需要一些随机函数生成随机的姓名和电话该函数代替$目录“$ fileName = $ attachment-> store('users /'。$ user-> id。'/'。$ directory);” – rahul

回答

1
public function upload(Request $request, User $user, $directory) 
{ 
if($request->hasFile('attachment')) 
{ 
    $random_name=rand(5, 15); 
    $attachments = $request->file('attachment'); 
    foreach ($attachments as $attachment) { 
     $fileName = $attachment->store('users/' . $user->id . '/' . $random_name); 
     $file = new File; 
     $file->path = $fileName; 
     $file->user_id = $user->id; 
     $this->files()->save($file); 
    } 
} 

}

+0

现在它正在制作一个额外的文件夹。 – Jamie

0

我已经做了这样的:

public function upload(Request $request, User $user, $directory) 
{ 
    if($request->hasFile('attachment')) 
    { 
     $attachments = $request->file('attachment'); 
     foreach ($attachments as $attachment) { 
      $random = str_random(30); 
      $filename = $random . $attachment->getClientOriginalName(); 
      $attachment->storeAs('users/' . $user->id . '/' . $directory, $filename); 
      $file = new File; 
      $file->path = $filename; 
      $file->user_id = $user->id; 
      $this->files()->save($file); 
     } 
    } 
} 
+0

它解决了你的问题吗? –

+0

是的,谢谢! – Jamie

相关问题