首先,我是PHP的初学者。我试图设计一个简单的应用程序来练习处理表单元素。基本上,我上传图像,推送提交,然后图像显示在Web浏览器中。表单完美无缺,但是一旦将图像存储到变量中,我就无法显示图像。
有人知道怎么做吗?
<html>
<head>
<title>HI</title>
</head>
<body>
<form action = "blah.php" method = "POST" enctype = "multipart/form-data">
<input type = "file" name = "dope">
<input type = "submit" value = "Upload Images" name = "submit">
</form>
</body>
</html>
PHP文件是:
<?php
$image = $_FILES;
imagejpeg($image);
?>
答案 0 :(得分:1)
您只需从上传中获取mime类型并将其读回浏览器:
header('Content-Type: ' . $_FILES['dope']['type']);
readfile($_FILES['dope']['tmp_name']);
这将发送一个具有正确mime类型的标题,以便浏览器知道如何处理它,如果它是一个图像,它将被内联处理,如果它是一个浏览器将下载它的应用程序。 readfile读取文件并将其直接发送到缓冲区。
请注意,如果您要存储文件以供将来阅读,您需要移动它并使用move_uploaded_file将位置存储在数据库或类似内容中,例如
move_uploaded_file($_FILES['dope']['tmp_name'], $destination);
然后,您可以反复提供文件,提供$destination
包含文件路径:
header('Content-Type: ' . mime_content_type($destination));
readfile($destination);