1

画像をアップロードしようとすると、次のエラーが発生し続けます。これを解決する方法を知っている人はいますか?次に何をしようか迷っています。

null でメンバー関数 getClientOriginalName() を呼び出す

https://flareapp.io/share/dmkydl73#F42

コントローラ

public function singalprojectaction(Request $request)
{
    $validation = validator::make($request->all(), [
        'select_file_one' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        'select_file_Two' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        'select_file_Three' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        'select_file_Four' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        'select_file_Five' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);

    if ($validation->passes()) {
        $select_project = $request->get('select_project');
        $project_name = $request->get('project_name');
        $Client_name = $request->get('Client_name');
        $Completion_date = $request->get('Completion_date');
        $Duration = $request->get('Duration');
        $Description = $request->get('Description');
        $select_file_one = $request->file('select_file_one');
        $select_file_Two = $request->file('select_file_Two');
        $select_file_Three = $request->file('select_file_Three');
        $select_file_Four = $request->file('select_file_Four');
        $select_file_Five = $request->file('select_file_Five');

        $new_name_one = mt_rand().'.'.$select_file_one->getClientOriginalName();
        $select_file_one->move(public_path('projects'), $new_name_one);
        $new_name_Two = mt_rand().'.'.$select_file_Two->getClientOriginalName();
        $select_file_Two->move(public_path('projects'), $new_name_Two);
        $new_name_Three = mt_rand().'.'.$select_file_Three->getClientOriginalName();
        $select_file_Three->move(public_path('projects'), $new_name_Three);
        $new_name_Four = mt_rand().'.'.$select_file_Four->getClientOriginalName();
        $select_file_Four->move(public_path('projects'), $new_name_Four);
        $new_name_Five = mt_rand().'.'.$select_file_Five->getClientOriginalName();
        $select_file_Five->move(public_path('projects'), $new_name_Five);

        $query = DB::table('single_portfolio')->insert([
            'project_id' => $select_project, 'Project_name' => $project_name,
            'Client_Name' => $Client_name, 'Completion_date' => $Completion_date
            , 'Duration' => $Duration, 'Description' => $Description, 'image_one' => $new_name_one, 'image_two' =>
                $new_name_Two,
            'image_three' => $new_name_Three, 'image_four' => $new_name_Four, 'image_five' => $new_name_Five
        ]);

        if ($query) {
            return redirect()->back()->with('messages', 'Data Is Successfully Inserted');
        }

    }

    return redirect()->back();
}
4

2 に答える 2

2

私が言えることから、$request->file('select_file_Two');返品はnull; これは、 name の入力用にファイルが選択されていない可能性が高いことを意味します。select_file_Two名前の大文字と小文字が同じであることを確認してくださいselect_file_two。すべてのファイルが必要な場合は、次のrequiredようにバリデーターに追加できます

 `require|image|mimes:jpeg,png,jpg,gif,svg|max:2048`

またはオプションの場合は、ファイルが事前に存在するかどうかを確認できます

if(!is_null($select_file_one)){
  $new_name_one = rand() . '.' . $select_file_one->getClientOriginalName();
  $select_file_one->move(public_path('projects'), $new_name_one);
}

送信されなかったすべてのファイルを処理します。

また、ここで注意すべきことは、ファイルを上書きする可能性がある新しい名前を生成するために rand() を使用していることです。そのようなタイムスタンプを追加することをお勧めします

use Carbon\Carbon;
$name = rand() . '_' . now()->timestamp . '.' . $image->getClientOriginalExtension();
于 2019-12-24T22:20:43.823 に答える