как загрузить несколько файлов из разных полей в laravel - PullRequest
1 голос
/ 07 февраля 2020

как загрузить несколько файлов из разных полей в laravel, когда я пробую скрипт, приведенный ниже, загружен только один файл, не все файлы загружены в базу данных

public function store(Request $request)
{
    $request->validate([
        'id_satker' => ['required', 'string', 'max:255'],
        'dipa' => 'required|mimes:pdf,xlx,csv,rar,xlsx,docx,doc,xlsb,pptx,ppt,jpg,png,jpeg|max:3000',
        'sk' => 'required|mimes:pdf,xlx,csv,rar,xlsx,docx,doc,xlsb,pptx,ppt,jpg,png,jpeg|max:3000',
        'lms1' => ['required', 'string', 'max:255'],
        'lms2' => ['required', 'string', 'max:255'],
        'las1' => ['required', 'string', 'max:255'],
        'las2' => ['required', 'string', 'max:255'],
    ]);

    //upload
    $namafiledipa = time().'.'.$request->file('dipa')->extension();
    $namafilesk = time().'.'.$request->file('sk')->extension();
    $dipa = $request->file('dipa')->storeAs('public/uploads/inputans', $namafiledipa);
    $sk = $request->file('sk')->storeAs('public/uploads/inputans', $namafilesk);


    $inputans = Inputan::create([
        'id_satker' => $request->id_satker,
        'dipa' => $namafiledipa,
        'sk' => $namafilesk,
        'lms2' => $request->lms2,
        'las1' => $request->las1,
        'las2' => $request->las2,
    ]);

    return redirect('inputan')->with('success', 'Selamat data berhasil ditambah!');
}

1 Ответ

1 голос
/ 07 февраля 2020

Вам не нужно использовать time(), оно может иметь то же значение. Это заменит ваш первый файл $namafiledipa.

$a = time(); // 1581065644
$b = time(); // 1581065644

dd($a, $b);

Laravel автоматически сгенерирует уникальный идентификатор для имени файла.

try {
    $namafiledipa = $request->file('dipa')->store();
    $namafilesk   = $request->file('sk')->store();
    $inputans     = Inputan::create([
        'id_satker' => $request->id_satker,
        'dipa'      => $namafiledipa,
        'sk'        => $namafilesk,
        'lms2'      => $request->lms2,
        'las1'      => $request->las1,
        'las2'      => $request->las2,
    ]);

    return redirect('inputan')
        ->with('success', 'Selamat data berhasil ditambah!');
} catch (\Exception $e) {
    dd($e);
}

try-catch может помочь вам, когда что-то идет не так.

...