gpt4 book ai didi

php - 将 Blob 对象保存为服务器上的文件

转载 作者:可可西里 更新时间:2023-11-01 00:41:20 25 4
gpt4 key购买 nike

使用名为 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需要一个完整路径作为第二个参数(目标位置),而且该文件夹应该是可写的。

关于php - 将 Blob 对象保存为服务器上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36044064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com