程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使“上传文件”成为可选的不需要 - Laravel 8大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使“上传文件”成为可选的不需要 - Laravel 8?

开发过程中遇到如何使“上传文件”成为可选的不需要 - Laravel 8的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使“上传文件”成为可选的不需要 - Laravel 8的解决方法建议,希望对你解决如何使“上传文件”成为可选的不需要 - Laravel 8有所启发或帮助;

我试图让用户选择是否要上传文件

这是完整的控制器代码:

<?php

namespace App\Actions\Fortify;

use App\Models\Team;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\ValIDator;
use Laravel\Fortify\Contracts\CreatesNewUsers;

class CreateNewUser implements CreatesNewUsers
{
use passwordValIDationRules;

/**
 * Create a newly registered user.
 *
 * @param  array  $input
 * @return \App\Models\User
 */
public function create(array $input)
{


    
    ValIDator::make($input,[
        'name' => ['required','String','max:255'],'usertype' => ['required','firmtype4' => ['required','firmname' => ['required','comNum' => ['nullable','litNote' => ['required','linktocomp' => ['required','LOCATIOn' => ['required','sex' => ['required','BD' => ['required','IDnumb' => ['required','study' => ['required','workplace' => ['required','whatworkbefore' => ['nullable','SoicalmIDe' => ['required','kindofparti' => ['required','whyparti1' => ['required','prevparti2' => ['nullable','whyparti' => ['required','smalword' => ['required','vIDeolink' => ['nullable','applybefore' => ['required','howyoukNow' => ['required','email' => ['required','email','max:255','unique:users'],'password' => $this->passwordRules(),'fathername' => ['required','surname' => ['required','phone' => ['required','instagram' => ['nullable','twitter' => ['nullable','linkedin' => ['nullable',])->valIDate();


   

    return DB::transaction(function () use ($input) {

    $request = request();
 if ($request->hasfile('uploadfile')) {
 $profileImage = $request->file('uploadfile');
    $profileImageSaveAsname = time() . "aa" . "-profile." . $profileImage->getClIEntOriginalExtension();

    
    $upload_path = 'uploads/form1/';
    $profile_image_url = $upload_path . $profileImageSaveAsname;
    $success = $profileImage->move($upload_path,$profileImageSaveAsName);
}


$request2 = request();
 if ($request2->hasfile('uploadfile2')) {
 $profileImage2 = $request2->file('uploadfile2');
    $profileImageSaveAsname2 = time() . "bb" . "-profile." . $profileImage2->getClIEntOriginalExtension();

    
    $upload_path2 = 'uploads/form1/';
    $profile_image_url2 = $upload_path2 . $profileImageSaveAsname2;
    $success = $profileImage2->move($upload_path2,$profileImageSaveAsname2);
}
    


$request3 = request();
 if ($request3->hasfile('uploadfile3')) {
 $profileImage3 = $request3->file('uploadfile3');
    $profileImageSaveAsname3 = time() . "cc" . "-profile." . $profileImage3->getClIEntOriginalExtension();

    
    $upload_path3 = 'uploads/form1/';
    $profile_image_url3 = $upload_path3 . $profileImageSaveAsname3;
    $success = $profileImage3->move($upload_path3,$profileImageSaveAsname3);
}


$request4 = request();
 if ($request4->hasfile('uploadfile4')) {
 $profileImage4 = $request4->file('uploadfile4');
    $profileImageSaveAsname4 = time() . "dd" . "-profile." . $profileImage4->getClIEntOriginalExtension();

    
    $upload_path4 = 'uploads/form1/';
    $profile_image_url4 = $upload_path4 . $profileImageSaveAsname4;
    $success = $profileImage4->move($upload_path4,$profileImageSaveAsname4);
}




        return tap(User::create([
            'name' => $input['name'],'usertype' => $input['usertype'],'firmtype4' => $input['firmtype4'],'LOCATIOn' => $input['LOCATIOn'],'firmname' => $input['firmname'],'comNum' => $input['comNum'],'litNote' => $input['litNote'],'linktocomp' => $input['linktocomp'],'sex' => $input['sex'],'BD' => $input['BD'],'IDnumb' => $input['IDnumb'],'study' => $input['study'],'workplace' => $input['workplace'],'whatworkbefore' => $input['whatworkbefore'],'SoicalmIDe' => $input['SoicalmIDe'],'kindofparti' => $input['kindofparti'],'whyparti1' => $input['whyparti1'],'prevparti2' => $input['prevparti2'],'whyparti' => $input['whyparti'],'smalword' => $input['smalword'],'partifile' => $profile_image_url,'vIDeolink' => $input['vIDeolink'],'resume' => $profile_image_url4,'previswork' => $profile_image_url3,'applybefore' => $input['applybefore'],'comprofile' => $profile_image_url4,'howyoukNow' => $input['howyoukNow'],'extrapdf' => $profile_image_url2,'fathername' => $input['fathername'],'surname' => $input['surname'],'phone' => $input['phone'],'instagram' => $input['instagram'],'twitter' => $input['twitter'],'linkedin' => $input['linkedin'],'email' => $input['email'],'password' => Hash::make($input['password']),]),function (User $user) {
            $this->createTeam($user);
        });
    });
}

/**
 * Create a personal team for the user.
 *
 * @param  \App\Models\User  $user
 * @return voID
 */
protected function createTeam(User $user)
{
    $user->ownedTeams()->save(Team::forceCreate([
        'user_iD' => $user->ID,'name' => explode(' ',$user->name,2)[0]."'s Team",'personal_team' => true,]));
}
}

如何使它可以为空?

我已更新问题以包含控制器的完整代码

现在我正面临着“未定义的变量:profile_image_url”

在我按照答案进行操作后,出现此错误

解决方法

您可以使用 hasFile

检查
$request = request();
     if ($request->hasFile('uploadfile')) {
     $profileImage = $request->file('uploadfile');
        $profileImageSaveAsName = time() . "aa" . "-profile." . $profileImage->getClientOriginalExtension();
    
        
        $upload_path = 'uploads/form1/';
        $profile_image_url = $upload_path . $profileImageSaveAsName;
        $success = $profileImage->move($upload_path,$profileImageSaveAsName);
    }

https://laravel.com/docs/8.x/requests#retrieving-uploaded-files

更新

根据您的代码,您需要传递 $request

return DB::transaction(function () use ($input) {

 if (\request()->hasFile('uploadfile')) {
 $profileImage = \request()->file('uploadfile');
    $profileImageSaveAsName = time() . "aa" . "-profile." . $profileImage->getClientOriginalExtension();

    
    $upload_path = 'uploads/form1/';
    $profile_image_url = $upload_path . $profileImageSaveAsName;
    $success = $profileImage->move($upload_path,$profileImageSaveAsName);
}



 if (\request()->hasFile('uploadfile2')) {
 $profileImage2 = \request()->file('uploadfile2');
    $profileImageSaveAsName2 = time() . "bb" . "-profile." . $profileImage2->getClientOriginalExtension();

    
    $upload_path2 = 'uploads/form1/';
    $profile_image_url2 = $upload_path2 . $profileImageSaveAsName2;
    $success = $profileImage2->move($upload_path2,$profileImageSaveAsName2);
}
    


 if (\request()->hasFile('uploadfile3')) {
 $profileImage3 = \request()->file('uploadfile3');
    $profileImageSaveAsName3 = time() . "cc" . "-profile." . $profileImage3->getClientOriginalExtension();

    
    $upload_path3 = 'uploads/form1/';
    $profile_image_url3 = $upload_path3 . $profileImageSaveAsName3;
    $success = $profileImage3->move($upload_path3,$profileImageSaveAsName3);
}



 if (\request()->hasFile('uploadfile4')) {
 $profileImage4 = \request()->file('uploadfile4');
    $profileImageSaveAsName4 = time() . "dd" . "-profile." . $profileImage4->getClientOriginalExtension();

    
    $upload_path4 = 'uploads/form1/';
    $profile_image_url4 = $upload_path4 . $profileImageSaveAsName4;
    $success = $profileImage4->move($upload_path4,$profileImageSaveAsName4);
}
,
$input = request::all();
    $rules = array(
        'name' => 'required|String|max:255','usertype' => 'required|String|max:255'
    );
    $validation = Validator::make($input,$rules,array());
    if ($validation->fails()) {
        $message = $validation->messages()->first();
        return Response()->json(ResponseManager::getError(null,1,$messagE));
    }
    DB::begintransaction();
    try {
        $input['uploadfile1'] = null;
        $input['uploadfile2'] = null;
        $input['uploadfile3'] = null;
        $input['uploadfile4'] = null;
        if (request::hasFile('uploadfile')) {
            $input['uploadfile1'] = $this->upload_file($input['uploadfile'],'uploads/form1');
        }
        if (request::hasFile('uploadfile2')) {
            $input['uploadfile2'] = $this->upload_file($input['uploadfile2'],'uploads/form1');
        }
        if (request::hasFile('uploadfile3')) {
            $input['uploadfile3'] = $this->upload_file($input['uploadfile3'],'uploads/form1');
        }
        if (request::hasFile('uploadfile4')) {
            $input['uploadfile3'] = $this->upload_file($input['uploadfile4'],'uploads/form1');
        }
        $result = User::create($input);
        DB::commit();
        $message = 'success';
        return Response()->json(ResponseManager::getResult(null,10,$messagE));
    } catch (Exception $E) {
        DB::rollBACk();
        $message = $e->getmessage();
        return Response()->json(ResponseManager::getError(null,8,$messagE));
    }

简单制作一个上传文件的常用函数。

public static function upload_file($image,$store_path) {
    $name = md5(uniqid(rand(),truE)) . str_replace(' ','-',$image->getClientOriginalName());
    $image->move(public_path('/' . $store_path),$Name);
    return $store_path . '/' . $name;
}

希望对你有用

大佬总结

以上是大佬教程为你收集整理的如何使“上传文件”成为可选的不需要 - Laravel 8全部内容,希望文章能够帮你解决如何使“上传文件”成为可选的不需要 - Laravel 8所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。