как добавить uniqid в загрузку изображений в laravel - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть функция для вставки данных в таблицу, и эти данные включают изображение / файл.Я думаю, что у моей формы не было проблем, но после того, как я добавил этот uniqid (), он не может быть отправлен с ошибкой «Вызов функции-члена getClientOriginalExtension () on null» *

 public function store_pelatihan(Request $request)
{

    $this->validate($request,[
        // 'title'       => 'required|min:5',
        // 'description' => 'required|min:5|max:14'
    ] );

    if($request->hasfile('file_scan'))

    {   
    $file = $request->file('file_scan');
        $name=$file->getClientOriginalName();
        $extension = $request->image->getClientOriginalExtension(); 
        $fileName = $file.'.'.uniqid().'.'.$extension; 
        $file->move(public_path().'/files/', $fileName);  
        $data = $fileName;  
    }


    $users = new Master_seminar_pelatihan;
    $users->user_id              = $request->user_id ;
    $users->nama_pelatihan       = $request->nama_pelatihan ;
    $users->nomor_pelatihan      = $request->nomor_pelatihan ;
    $users->tanggal              = $request->tanggal ;
    $users->uraian               = $request->uraian ;
    $users->tempat               = $request->tempat ;
    $users->file_scan            = $data;

    dd($data);
    // $users->save();
    // return redirect ('pelatihan')->with('success', 'Input Succes');


}

Ранее явыполнял этот код и работал без ошибок:

$extension = $request->image->getClientOriginalExtension(); 

$fileName = $file.'.'.uniqid().'.'.$extension; 

Ответы [ 3 ]

0 голосов
/ 19 сентября 2019

Если вы объединяете с '.' до uniqid () , потребуется расширение , поэтому либо вы используете '-' или '_' .

$fileName = $file.'_'.uniqid().'.'.$extension; 

Или

$fileName = $file.'-'.uniqid().'.'.$extension;
0 голосов
/ 19 сентября 2019
  • Проверить файл isValid() первый
  • Получить getClientOriginalExtension() файла $ (не $ request-> image )
  • Не объединять переменную $ file (это UploadedFile) со строками. $ name должно быть вместо
    if ($request->hasfile('file_scan') && $request->file('file_scan')->isValid()) {
        $file = $request->file_scan;
        $name = $file->getClientOriginalName();
        $extension = $file->getClientOriginalExtension();
        $fileName = $name . '.' . uniqid() . '.' . $extension;
        $file->move(public_path() . '/files/', $fileName);
        $data = $fileName;
    }
0 голосов
/ 19 сентября 2019

изменить эту строку:

$request->image->getClientOriginalExtension()

на:

$file->getClientOriginalExtension()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...