使用名为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
而不是中进行访问$_POST
。
评论交换确认了这一点。
您的$_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"
);
注意:move_uploaded_file
需要完整路径作为第二个参数(目标位置),并且该文件夹应可写。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句