您好,我从输入表单上传数据:图像,它适用于 png 和 jpg,但我无法使用 GIF。
<input value="data:image/gif;base64,...................................." type="hidden" />
我需要的:
从字符串创建文件而不会丢失动画。(另一个问题)
复制到文件夹
问题
无论我试图上传什么 gif,我都会从 if (!$image) 中得到一个错误,该图像无效。为什么 ?
如果我删除 $image = @imagecreatefromgif($image); 所有作品,但复制的图像只是 gif 的第一帧,所以它不是动画的(我听说 GD 有问题,也许我可以从 datestring 复制完整的图像,但如何正确保存?)
我尝试使用 Gifencoder 和 Gifdecoder 和 imagemagick,但问题是它无法识别来自数据字符串的图像,我需要将它弄掉吗?
这是我的代码
function ImageUploadString($data_string)
{
$data_string = str_replace('data:image/gif;base64,', '', $data_string);
$data_string = base64_decode($data_string); // decode image from base64
$image = imagecreatefromstring($data_string);
if ($image !== false) {
$random_imagename = str_shuffle(MD5(microtime()));
$extention = "gif";
$ufname = 'folder/'.$random_imagename.'.'.$extention;
$image = @imagecreatefromgif($image); /* Attempt to open */
if (!$image) {
imagedestroy($image);
die('gif error');
}
imagegif($image, $ufname);
}
}
$imagebase = "data:image/gif;base64,..........................................";
ImageUploadString($imagebase);