PHP图像类型应用程序/png
Posted
技术标签:
【中文标题】PHP图像类型应用程序/png【英文标题】:PHP image type application/png 【发布时间】:2017-09-28 11:27:36 【问题描述】:由于某种原因,图像类型在 IE 7 和 Edge 中显示为“application/png”,但在 Chrome 和 Firefox 中显示为“image/png”。我尝试了几种不同的图像,jpegs 做同样的事情。这是正常的吗?我应该包含一个或声明来说明“应用程序/png”吗?还是我做错了什么?
if ((($screenshot_type == 'image/gif') || ($screenshot_type == 'image/jpeg') ||
($screenshot_type == 'image/pjpeg') || ($screenshot_type == 'image/png')) &&
(($screenshot_size > 0) && ($screenshot_size <= GW_MAXFILESIZE)))
if ($_FILES['screenshot']['error'] == 0)
// Move the file to the targe upload folder
$target = GW_UPLOADPATH . $screenshot;
if (move_uploaded_file($_FILES['screenshot']['tmp_name'], $target))
// Connect to the database
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Unable to connect to databse');
// Write the data to the database
$query = "INSERT INTO guitarwars VALUES (0, NOW(), '$name', '$score', '$screenshot')";
mysqli_query($dbc, $query)
or die('Unable to complete query');
// Confirm success with the user
echo '<p>Thanks for adding your new high score!</p>';
echo '<p><strong>Name:</strong> ' . $name . '<br>';
echo '<strong>Score:</strong> ' . $score . '</p>';
echo '<img src="' . GW_UPLOADPATH . $screenshot . '" /></p>';
echo '<p><a href="index.php"><< Back to high scores</a></p>';
// Clear the score data to clear the form
$name = "";
$score = "";
$screenshot = "";
mysqli_close($dbc);
else
echo '<p class="error">Sorry, there was a problem uploading your screen shot image.</p>';
else
echo '<p class="error">The screen shot must be a GIF, JPEG, or PNG image file no ' .
'greater than ' . (GW_MAXFILESIZE / 1024) . ' KB in size.<br>' . $screenshot_size . '<br>' . $screenshot_type . '</p>';
【问题讨论】:
你最好检查一下file extension, than for mime type。 【参考方案1】:不同的浏览器和操作系统提供不同的 mime 类型。您或许应该只在上传的文件上使用 http://php.net/getimagesize,然后打开 $getimagesizeresult[2] 并使用 IMG_PNG、IMG_JPG、IMG_GIF 的情况,并自行应用适当的 mime 类型。
【讨论】:
以上是关于PHP图像类型应用程序/png的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PHP 中将图像从 base 64 转换为它们的文件类型?
是否可以将 jpeg(或 png)类型的图像设置为 exe(C++)?
如何使用干预图像laravel将webp图像转换为jpeg或png
Laravel 4.2 抛出 NotReadableException “不支持的图像类型。GD 驱动程序只能解码 JPG、PNG、GIF 或 WebP 文件。”