因此,我看了几乎所有的问题,并尝试使用下面的php脚本显示我的图像。但它不起作用。我还尝试查看是否使用PHPInfo()启用了GD库,并且它也工作得很好。我是PHP的新手,但似乎不能让它工作。谢谢你的帮忙!
编辑:点击upload a doc按钮后,我得到一个损坏的图像图标。
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_FILES['photo'])
&& is_uploaded_file($_FILES['photo']['tmp_name'])
&& $_FILES['photo']['error'] == UPLOAD_ERR_OK) {
foreach ($_FILES['photo'] as $key => $value) {
echo "$key : $value<br />";
}
if($_FILES['photo']['type'] == 'image/jpeg') {
$tmp_img = $_FILES['photo']['tmp_name'];
$image = imagecreatefromjpeg($tmp_img);
header('Content-Type: image/jpeg');
imagejpeg($image,NULL);
imagedestroy($image);
} else {
echo "Uploaded file ewas not a jpg image.";
}
echo "no photo uploaded.";
}
}
?>
<form enctype="multipart/form-data" action="book.php" method="post">
<input type="file" name="photo">
<input type="submit" value="upload a doc">
</form>发布于 2013-10-14 01:12:26
您可以尝试在imagedestroy($image);之后添加die();,以阻止除图像数据以外的任何其他输出。还要将imagejpeg($image,NULL);更改为imagejpeg($image);。
发布于 2013-10-14 01:28:31
您不能使用tmp_name直接访问镜像。首先,您应该将图像保存到服务器,然后您可以使用imagecreatefromjpeg
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_FILES['photo'])
&& is_uploaded_file($_FILES['photo']['tmp_name'])
&& $_FILES['photo']['error'] == UPLOAD_ERR_OK) {
if($_FILES['photo']['type'] == 'image/jpeg') {
$tmp_img = $_FILES['photo']['tmp_name'];
$uniq_name = uniqid().".".explode(".",$tmp_img)[1];
move_uploaded_file($_FILES['photo']['tmp_name'],$uniq_name);
$image = imagecreatefromjpeg($uniq_name);
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
} else {
echo "Uploaded file ewas not a jpg image.";
}
echo "no photo uploaded.";
}
}
?>
<form enctype="multipart/form-data" action="book.php" method="post">
<input type="file" name="photo">
<input type="submit" value="upload a doc">
</form>发布于 2013-10-14 01:29:10
我认为问题出在echo和PHP节(HTML代码)之后的输出字符串上。删除foreach循环并仅在是新页面或出现错误时输出HTML.
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_FILES['photo'])
&& is_uploaded_file($_FILES['photo']['tmp_name'])
&& $_FILES['photo']['error'] == UPLOAD_ERR_OK) {
if($_FILES['photo']['type'] == 'image/jpeg') {
$tmp_img = $_FILES['photo']['tmp_name'];
$image = imagecreatefromjpeg($tmp_img);
header('Content-Type: image/jpeg');
imagejpeg($image,NULL);
imagedestroy($image);
exit; // Add this to stop the program here.
} else {
echo "Uploaded file was not a jpg image.";
}
} else {
echo 'No file was sent.';
}
}
?>
<form enctype="multipart/form-data" action="book.php" method="post">
<input type="file" name="photo">
<input type="submit" value="upload a doc">
</form>还有一件事,如果您使用记事本编写代码,请确保文件开头没有隐藏字符。
https://stackoverflow.com/questions/19347832
复制相似问题