【发布时间】:2021-07-13 04:11:27
【问题描述】:
我有一个发送图像的脚本,它被保存为 .gif 文件,如下面列出的 movie.php 文件中所声明的那样。 但是,据我了解,它会从 gif 创建图像,使其无法显示,因为它只是变成了静态图像 .gif。 反正 我想知道如何上传此文件并忽略此功能(imagecreatefromgif)我尝试以多种方式更改它,当我删除它时出现错误,有人可以帮助我解决这个问题,以便发送 gif 和不会被转换成静态的 gif 文件。基本上我希望我发送 gif 的方式只能用函数 imageGenerateName () 重命名,但它会保留它的所有大小和属性。 欢迎任何帮助。 提前致谢 . Movie.php 代码:
<?php
class Movie {
public function imageGenerateName() {
return bin2hex(random_bytes(60)) . ".gif";
}
}
movie-process.php 代码
<?php
// Upload img
if(isset($_FILES["image"]) && !empty($_FILES["image"]["tmp_name"])) {
$image = $_FILES["image"];
$imageTypes = ["image/gif"];
$jpgArray = ["image/gif"];
// Check img type
if(in_array($image["type"], $imageTypes)) {
// Check img type
if(in_array($image["type"], $jpgArray)) {
$imageFile = imagecreatefromgif($image["tmp_name"]);
} else {
$imageFile = imagecreatefromgif($image["tmp_name"]);
}
// image name
$imageName = $movie->imageGenerateName();
imagegif($imageFile, "./img/movies/" . $imageName, 100);
$movie->image = $imageName;
}
}
// Upload img
if(isset($_FILES["image"]) && !empty($_FILES["image"]["tmp_name"])) {
$image = $_FILES["image"];
$imageTypes = ["image/gif"];
$jpgArray = ["image/gif"];
// Check img type
if(in_array($image["type"], $imageTypes)) {
// check type is gif
if(in_array($image["type"], $jpgArray)) {
$imageFile = imagecreatefromgif($image["tmp_name"]);
}
// generete img name
$movie = new Movie();
$imageName = $movie->imageGenerateName();
imagegif($imageFile, "./img/movies/" . $imageName, 100);
$movieData->image = $imageName;
}
}
【问题讨论】: