使用Laravel将图像上传到Cloudinary

jaql4c8m  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(188)

我有一个表,显示了学生名单,我希望能够附加到表中的每个孩子的图像,然后立即上传到cloudinary。
我面临的挑战是

<form action="/student/image/upload" method="POST" enctype="multipart/form-data">
                <table class="table table-hover table-bordered " id="customers">

   
                  <thead class="thead-light">
                    <tr>
                      <th>No.</th>
                      <th>Student Surname</th>
                      <th>Student Names</th>
                      <th>Manage</th>
                    </tr>
                    </thead>
                    <tbody>
                     

                            @foreach ($students as $item)
                            <tr>
                            <td>
                              {{$loop->iteration}}
                          
                            </td>
                            <td>{{$item->lastname}}  </td>
                            <td>{{$item->name}} {{$item->middlename}}</td>
                        <td>

                            {{-- <x-cld-upload-button>
                                Upload Files
                            </x-cld-upload-button> --}}
                     
                                @csrf
                            <input id="upload" name="student_image"  placeholder="Choose files" type="file"/> 
                            <input type="hidden" name="student_id" value="{{$item->id}}">
                            <button type="submit" class="btn btn-primary" id="submit">Submit</button>
                       
                        </td>
                    

                            </tr>
                           
                          
                            @endforeach

                    
                    </tbody>
               <tr>
                 <td><button type="submit" class="btn btn-primary" id="submit">Submit</button></td>
               </tr>
                </table>
            </form>

以上是PHP的代码
我的Laravel控制器代码如下

$student_id=$request->student_id;

 
    
   
    if($request->hasFile('student_image')){
            
                
        $image = $request->file('student_image')->storeOnCloudinaryAs('xxxxx', $student_id);
        $student_image=$image->getSecurePath();

        dd($student_image);

        // dd($student_image);

        User::where('id', $student_id)->update([

            'profile_photo_path'=>$student_image,
        ]);

    }else{
      
    }

我想在点击提交后将多张图片上传到云日记。但是在上传之前,如果图片很大,我想压缩它的大小。而且我还想将图片名称重命名为隐藏的学号。
如何使用Cloudinary API实现这一点

qgelzfjb

qgelzfjb1#

您可以使用库来完成此操作。请按照他们的安装指南操作。
要求:PHP 7.2+Composer。您可以将其用于Laravel9(v2)或Laravel8(v1)。将您的Cloudinary API凭据添加到您的.env文件中。
注意:您需要从Cloudinary Jmeter 板获取这些凭据。

but5z9lq

but5z9lq2#

如果你想在上传前压缩你的媒体资产,使用传入的转换。这个功能将允许你保存压缩的原始文件。如果你登录到你的Cloudinary帐户,进入你的设置-〉上传选项卡,向下滚动到上传预设部分,你有任何默认的上传预设选择?如果有,上传预设有任何传入的转换?
除非您将传入转换作为默认上传预设的一部分应用,否则此转换不会应用于Cloudinary级别。
如果您没有应用默认的上传预设,那么我会检查输入的图像,并可能在将图像上传到Cloudinary并查看其大小之前将其存储在本地。
至于命名你的资产-文件的名称是所谓的public id在Cloudinary,你可以设置为任何值,你喜欢,阅读更多关于它在这里。

相关问题