使用名为cropper 的jQuery 插件,我能够将裁剪后的图像作为blob 对象检索。现在我需要将此 blob 对象保存为服务器上的文件。其代码是:
$('#image').cropper('getCroppedCanvas').toBlob(function (blob) {
var formData = new FormData();
formData.append('croppedImage', blob);
formData.append('form_key', window.FORM_KEY);
$.ajax('/upload.php', {
method: "POST",
data: formData,
processData: false,
contentType: false,
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
});
这是我的 upload.php:
<?php
$blob = $_POST['croppedImage'];
//return $blob;
file_put_contents('/media/crop_products/test.png', $blob);
?>
它没有将其保存在服务器上。我在这里是什么东?该请求是从 magento 的管理页面发出的。
由于您正在发送数据contentType:false
,它将可以在$_FILES
, not $_POST
.
评论交流证实了这一点。
Your $_FILES
数组是(根据评论):
[_FILES] => Array (
[file] => Array (
[name] => blob
[type] => image/png
[tmp_name] => /tmp/phpC9g8rU
[error] => 0
[size] => 1062301
)
)
上传它:
move_uploaded_file(
$_FILES['file']['tmp_name'],
$_SERVER['DOCUMENT_ROOT'] . "/media/crop_products/test.png"
);
Note: move_uploaded_file
需要完整路径作为第二个参数(目标位置),并且该文件夹应该是可写的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)