我正在使用带背包的Laravel(5.5)。背包包含Cropper jQuery插件,该插件允许您在上传之前裁剪图像。
我需要在服务器上保存裁剪版本和图像的完整版本。裁剪版本是缩略图,完整版本是放大的视图。
默认情况下,背包实现仅保存图像的裁剪版本。我保存完整尺寸的计划是修改背包视图,以包括一个由全尺寸图像组成的额外隐藏字段(OnSubmit设置了隐藏字段的值?)。
我已经阅读了农作物文档,但我不确定哪种方法会以全尺寸(裁剪之前)返回图像数据,并且是否包含在表单提交中(不要以为是)。/p>
我有两个问题:
- 是已经发送到服务器的完整图像(除了裁剪版本)等,如果是,该字段的名称是什么持有它?
- 如果以上是错误的,是否有农作物的方法将返回的课程给我我可以发送的图像数据在单独的字段中到达服务器?
第二个问题有点含糊,因为我不确定该图像上传的工作原理(似乎在上传之前已将其转换为base64,但这是令人惊讶的,如果是)。
预先感谢。
我最终得到的解决方案包括以下内容:
-
在客户端,我在
:resources/view/vendor/backpack/crud/fields/image.blade.php
中添加了一个名为fullImageData
的隐藏字段。然后,我按照在同一文件中设置裁切版本的行的行上的行中添加了以下JavaScript作为匿名函数(关于行189):$ mainimage.cropper('clear');$ mainimage.cropper('setData',$ mainimage.cropper('getimagedata'))var fullimageurl = $ mainimage.cropper('getCroppedCanvas')。todataurl(file.type);$('#fullimagedata')。val(fullimageurl);
-
在服务器上,在模型中,添加一个称为
fullImageData
和setFullImageDataAttribute
突变器的模型属性(具有任何可见性)以捕获图像数据(并将其保存到文件),最后添加fullImageData
字段到模型的$填充属性。
我希望这对其他情况有所帮助。