簡體   English   中英

laravel 5多次上傳並將其名稱存儲到數據庫中

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

我目前正在關注此答案 ,這是我的代碼

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

您只能使用$filename=$file->getClientOriginalName();分配文件$filename=$file->getClientOriginalName(); 這將為您提供完整的文件名,包括原始擴展名。

假設您要將文件上傳到文件夾“ / public / files /”中。

我建議您在foreach中使用它:

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

然后用於在數據庫中存儲文件路徑(我使用filepath屬性作為示例):

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

這樣,您可以將文件保存在所需的位置,然后擁有存儲在數據庫中的文件的完整路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM