我有一个表,显示了学生名单,我希望能够附加到表中的每个孩子的图像,然后立即上传到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实现这一点
第
2条答案
按热度按时间qgelzfjb1#
您可以使用库来完成此操作。请按照他们的安装指南操作。
要求:
PHP 7.2+
和Composer
。您可以将其用于Laravel9(v2)或Laravel8(v1)。将您的Cloudinary API凭据添加到您的.env文件中。注意:您需要从Cloudinary Jmeter 板获取这些凭据。
but5z9lq2#
如果你想在上传前压缩你的媒体资产,使用传入的转换。这个功能将允许你保存压缩的原始文件。如果你登录到你的Cloudinary帐户,进入你的设置-〉上传选项卡,向下滚动到上传预设部分,你有任何默认的上传预设选择?如果有,上传预设有任何传入的转换?
除非您将传入转换作为默认上传预设的一部分应用,否则此转换不会应用于Cloudinary级别。
如果您没有应用默认的上传预设,那么我会检查输入的图像,并可能在将图像上传到Cloudinary并查看其大小之前将其存储在本地。
至于命名你的资产-文件的名称是所谓的
public id
在Cloudinary,你可以设置为任何值,你喜欢,阅读更多关于它在这里。