【发布时间】:2016-07-02 19:52:14
【问题描述】:
使用名为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用于 multipart/form-data 表单发送文件。看$_FILES -
是的,错误文件中没有任何内容。权限也是正确的
-
文件正在保存但它是空的,我是否正确读取 blob 对象?
-
我打赌文件是创建的而不是保存的。在
$blob = ...之前运行$a = get_defined_vars();unset($a['GLOBALS'], $a['_ENV'], $a['_SERVER']);print_r($a);并准确查看您发送的内容。