php - 如何将裁剪的图像从 Ajax 发送到 Symfony 控制器?
问题描述
我一直被 Symfony 中的图像裁剪所困扰。我正在使用 Croppie js 进行裁剪,但我无法将裁剪后的图像保存到数据库中。
<script>
$(document).ready(function(){
$image_crop = $('#image_demo').croppie({
enableExif: true,
viewport: {
width:200,
height:200,
type:'square'
},
boundary:{
width:300,
height:300
}
});
$('#upload_image').on('change', function(){
var reader = new FileReader();
reader.onload = function (event) {
$image_crop.croppie('bind', {
url: event.target.result
}).then(function(){
console.log('jQuery bind complete');
});
}
reader.readAsDataURL(this.files[0]);
$('#uploadimageModal').modal('show');
});
$('.crop_image').click(function(event){
$image_crop.croppie('result', {
type: 'canvas',
size: 'viewport'
}).then(function(response){
var file = response.replace(/^data:image\/(png|jpg);base64,/, "");
var data = new FormData();
data.append('img', file);
console.log(file);
$.ajax({
url: "{{ path('app_bundle_route') }}",
type: "POST",
data: data,
processData: false,
contentType: false,
cache: false,
success: function(data){
$('#uploadimageModal').modal('hide');
$("#previewImg").attr('src', response);
}
});
});
});
});
如何在控制器中获取裁剪后的图像?代码有什么问题吗?
console.log(file);
iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAgAElEQVR4nGS8x5Ik15auB3b3aQBVmaGVh8zQWuvw0FqlrKrUOiIzI3VpCRRKATgHp9FH9m3e5pBjCiPNrvG+AQecccwH4IDP8HHgUQHA7mDbDveMNMuBf/mv/19r+xeOgAVPxI4nYsMXs+MMmvGGbdJ11Ikv6mAhaELn06D0y1EHlRhTehZKVsyiCX1Sh9anRmGToXQpERImdDEtlqyAIaVFyBgwpPXYylYMBT3GihFnz4F9aMW5tIBzdQHnih3LwIK1ayX4IIwyqEJllKPQy5kzzCET7qLSzyHXz6EQ5pHr55Br5lHo5pjXfiXdN8yjFGSzpTDMIxPm0VhUCAtqlMa7KG3zKJxyNB4V+qAWU1jAGNGiCasx+rUEIgtkSmEypSAp0U9a9JIvB0gXPKSKXtIlH5GMnUzZT1KU7iVFD7lqkHwtQL7sI13wEIpbyYhe8mUfGdFNMGYkmXOQLrjIiG7SBRdiNUCh4qdQ8SNWpd/Nl30Ua8HZ/WItiFgNINZ8FOs+xJqXQtVDsS5dl+v+Xy0v1aafatNPvR2k1gpQa/qp1L1U6l5qTT+1pp9qw0erG6beCkzv+6g1vbTaXpotD9Wqm0rFTbPpo9cL0+kEabX8NFsehosR+oMQK6sJVlYTLK/EWFmNs76R5f6DNItLEYaLEVbuJVjfyLJ2L879+wkerKfY3MqysZVkayfF9m6ara0k+/s5traSbG+n2N3NsLufZWcvx/Zulv1DkfX1OPv7OTY3E+zsZNncTHB4lOfouMDoqMDhfpbRUW66FxgdiRwdFdjdSzMaFzgdi2xtRDg6yHB2UmQ8SnN1KXJzXePirMjFWYHJWZaz0xxHB1Euz/NcX4rc3BS5eVjm4eMaXziDVnwxJ97oAp6IDVfIgidkxROx4Y048YbtmH0GbCkrCp8SU0JAGZChj2vRRbUonQqUVjky4zzzpnlU…
解决方案
我不知道裁剪了什么,但我可以看到您通过 ajax 发送文件。
你可以在 symfony 中使用 class.get 获取文件、请求属性等Request
。
$request->files->get('name_of_your_parameter_sent')
如果您不确定发送的参数的名称是什么
$request->files->all()
更多信息在这里Http 基础
推荐阅读
- python-3.x - 添加类成员变量时如何避免重写派生类?
- python - 在 Django 中,当我更新发布日期时,如何从 get_absolute_url 获取链接已更新?
- python - 为什么我只从 Spotify 播放列表中获得一首歌曲而不是所有歌曲?
- android - 在 kotlin 中使用 volley 解析 json 代码时出现错误
- python - 如何相对于旧位置移动 Tkinter-Label?
- python - Xpath 获取具有特定字符串及其所有后续兄弟的标签,直到标签中包含另一个特定字符串
- python - RegEx 用一行替换所有组
- c - 正确使用 malloc 和 strcat 避免 valgrind 出现内存错误
- sql - 使用查询从 SQL 表中选择子集
- javascript - 如何获取用户默认参数?