- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,由于英语不是我的母语,请原谅我的错误。
我正在尝试通过 Symfony2 开发我的第一个项目。但是我被文件上传困住了。因此,我安装了 VichUploaderBundle,它提供了我需要管理的内容:所有类型的上传媒体(主要是图像)。
为什么我需要上传图片?我的项目中有用户,他们可以编辑他们的个人资料。所以,我有一个实体 ProfilePicture 应该管理上传,这要归功于 VichUploaderBundle。当使用提交按钮或使用 ajax 发送表单时,它可以完美地工作。
但是,为了改善用户体验,我还添加了一个 jQuery 插件 (Cropit)。 Cropit 给出裁剪图片的 base64。我使用 ajax 发送整个内容。
并且知道...我很挣扎。我一直在互联网上到处搜索,寻找有想法的人,我已经阅读了所有文档,试图找到另一种方法来完成我想做的事情。
这是我实际的“测试”代码:
$base64 = $request->request->get('base64');
preg_match('/data:([^;]*);base64,(.*)/', $base64, $matches);
$data = base64_decode($matches[2]);
$ui = uniqid().'.png';
$file = 'images/profile_pictures/'. $ui;
file_put_contents($file, $data);
$picture = new File($file);
$profile->getPicture()->setImageFile($picture);
这允许我将裁剪后的图片保存在想要的目录中。然而,这并不是我真正想要的。事实上,我只是想找到一种方法将我的 base64 内容转换为 $profile->getPicture()->setImageFile() 中存在的内容(如果我刚刚发送了一张图片)。我很含糊,很抱歉。这是我第一次创建上传系统。
我认为可能有一种方法可以避免发送 Base64。但我们能用这类数据做什么呢?我们可以使用 jQuery 对其进行解码并转换我的表单以发送表单,就像我只选择我的图片并想要保存整个图片一样吗?
您如何在项目中管理这一点?还有比这个更好的其他 bundle 吗?我一直在寻找,没有成功。 SonataMediaBundle 似乎太大了,无法满足我的需求,而且我也找不到办法用它保存裁剪后的图片。
我在VichUploaderBundle的Git上找到了想管理的人。然而,他的问题在给出更好的答案之前就被关闭了...... https://github.com/dustin10/VichUploaderBundle/issues/223
预先感谢您的帮助!
最佳答案
该问题已关闭,因为它不适合 bundle 的范围。 VichUploaderBundle 基本上通过表单将 UploadedFile
对象映射到实体,仅此而已。
您的问题的关键字是“UploadedFile”
和“forms”。
如果您必须以 Base64 编码的字符串、原始字节等形式发送文件,那么您必须将其转换为 UploadedFile
才能使其与 VichUploaderBundle 配合使用。我猜是DataTransformer可以做到这一点。它可以解码 Base64 编码的字符串并将其存储在临时文件中,该文件可用于 build an UploadedFile object .
关于jquery - VichUploaderBundle & Cropit - 将 base64 传递给 File 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496318/
我无法让 npm 识别出我已经安装了cropit。我的 package.json 包含如下相关行: "cropit": "^0.1.9", "jquery": "~2.1.1" 我是否选择了错误的版本
您好,我正在使用以下插件 CropIt ,为了处理我网站上的图像,在文档中有一个名为 "onFileChange" 的选项,但文档本身并不是很有帮助,我需要在用户之后立即执行一个功能从对话框中选择图像
我正在使用 cropit.js jquery 插件在浏览器中裁剪图像。插件网站是here . 我遇到的问题是,我根据点击的图像动态加载图像。 第一个图像加载良好,一切正常。但是,如果我单击第二个图像或
我对这个插件非常失望。我是 JS/Jquery 的新手,但我的网站非常需要这个插件...所以我在这里找到了 cropit:http://scottcheng.github.io/cropit/ 我不知
如果您查看 jQuery Cropit 中的默认设置,代码如下 Resize image Submit
我的代码正在裁剪图像,但不检查图像大小是否大于 15 MB。我正在使用 Cropit jQuery plugin . 我正在使用这段代码来初始化库: (function() { var b;
阅读文档后,我仍然没有找到如何在图像很小的情况下调整图像大小的解决方案。但它适用于大图像,但又不适用于小图像。请在下面查看我的代码: $(document).ready(function(){ $
我正在尝试使用 Cropit jQuery 插件上传裁剪后的图像,该插件在前端使用 Canvas 。基本上尝试重新创建此处描述的过程: How to crop and upload photo usi
我已经在互联网上搜索了一段时间,但找不到任何可以告诉我如何从 $('#image-cropper').cropit('export') 转换结果的信息转换为 PHP 可以上传到服务器的图像。我正在使用
我的 cropit html 代码:
所以我目前找到了这个名为cropit的照片裁剪插件。 .演示是 here .所以我想做的是抓取裁剪后的照片并将照片的名称上传到 mysql 数据库并使用 php 将其保存到目录中。 到目前为止我有这个
首先,由于英语不是我的母语,请原谅我的错误。 我正在尝试通过 Symfony2 开发我的第一个项目。但是我被文件上传困住了。因此,我安装了 VichUploaderBundle,它提供了我需要管理的内
我是一名优秀的程序员,十分优秀!