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

时间:2015-12-16 22:54:35

标签: php laravel file-upload laravel-5

我目前正在关注此answer,这是我的代码

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

我仍然困惑如何将他们的路径保存到数据库中 它应该是这样的吗?

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

1 个答案:

答案 0 :(得分:0)

您只能使用$filename=$file->getClientOriginalName();指定文件名 这将为您提供包含原始扩展名的完整文件名。

我们假设您要将文件上传到文件夹' / public / files /'。

我建议你在foreach中使用它:

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

然后在数据库中存储文件路径(我以文件路径属性为例):

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

通过这种方式,您可以将文件保存到所需的位置,然后将文件的完整路径存储在数据库中。