简体   繁体   English

laravel 5多次上传并将其名称存储到数据库中

[英]laravel 5 multiple upload and store their name into database

i am currently following this answer and here is my code 我目前正在关注此答案 ,这是我的代码

public function add(Request $request) {
$files=[];
if($request->file('remind_letter')) $files[]=$request->file('file1');
if($request->file('answer_note')) $files[]=$request->file('file2');
if($request->file('negotiation')) $files[]=$request->file('file3');
foreach($files as $file){
if(!empty($file){
$filename=$file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
Storage::disk('local')->put($filename.'.'.$extension,
                                         File::get($filename));
$entry = new Docks();
$entry->div = $request->input('div');
$entry->year = $request->input('year');
$entry->activity = $request->input('activity');
$entry->corporate = $request->input('corporate');
--- need logic to save their path into databse ----
$entry->save

and i am still confuse how to save their path into database it is should be like this ? 而且我仍然困惑如何将其路径保存到数据库中,应该是这样吗?

$entry->remind_letter = $file->getFilename().'.'.$extension
$entry->answer_note= $file->getFilename().'.'.$extension
$entry->negotiation = $file->getFilename().'.'.$extension

You can assign filename using only $filename=$file->getClientOriginalName(); 您只能使用$filename=$file->getClientOriginalName();分配文件$filename=$file->getClientOriginalName(); This will give you full file name included original extension. 这将为您提供完整的文件名,包括原始扩展名。

Let's assume you want to upload your files into the folder '/public/files/'. 假设您要将文件上传到文件夹“ / public / files /”中。

I suggest you use this inside your foreach: 我建议您在foreach中使用它:

if( !empty($file) )
{
    $file->move(base_path() . '/public/files/', $file->getClientOriginalName());
}

then for store filepath inside database ( I'm using filepath property as example): 然后用于在数据库中存储文件路径(我使用filepath属性作为示例):

$entry->filepath = base_path() . '/public/files/' . $file->getClientOriginalName();

In this way you will save the file where you desire and then have a full path to your file stored inside database. 这样,您可以将文件保存在所需的位置,然后拥有存储在数据库中的文件的完整路径。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM