将图像另存为服务器上文件夹中的文件
Posted
技术标签:
【中文标题】将图像另存为服务器上文件夹中的文件【英文标题】:Save image as file in a folder on the server 【发布时间】:2017-09-06 08:41:34 【问题描述】:我正在运行这段代码...
$im = imagecreatefromstring($arr['IMAGE']->load());
$result = $arr['IMAGE']->load();
echo $result;
exit();
这段代码在浏览器上显示图像。我的问题是......如何保存为文件并保存在服务器上?
我正在使用此代码,它正在保存为文件但没有图像。
define('UPLOAD_DIR', 'testuploads/');
// $img = str_replace('data:image/png;base64,', '', $result);
// $img = str_replace(' ', '+', $img);
$data = imagejpeg($result);
$file = UPLOAD_DIR . uniqid() . '.jpeg';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
【问题讨论】:
$im = imagecreatefromstring($arr['IMAGE']->load());
似乎是多余的。这条线的目的是什么?你的意思是稍后再做imagejpeg($im);
吗?还要检查php.net/manual/en/function.imagejpeg.php - 它返回真或假,而不是数据。您必须将输出目标指定为参数。 RTM。
如果您有更多代码,请改用它来编辑问题。无论如何,由于我提到的有关 imagejpeg 的返回类型的内容,它仍然无法工作。在编写此代码之前,您是否阅读过文档?
【参考方案1】:
如果是 png,则使用 imagejpeg($result, $file) 或 imagepng,而不是 file_put_contents。
(其中 $result 是你的 img,$file 你的路径+文件名)
编辑:见文档:http://php.net/manual/en/function.imagejpeg.php
示例:
<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, 'A Simple Text String', $text_color);
// Save the image as 'simpletext.jpg'
imagejpeg($im, 'simpletext.jpg');
?>
【讨论】:
以上是关于将图像另存为服务器上文件夹中的文件的主要内容,如果未能解决你的问题,请参考以下文章
Node.js:将 Android-Base64 编码图像另存为文件