如何在提交表单后显示上传的图片?提交表单后,它将是一个预览页面,所以我不会在MySQLyet中存储图像类型BLOB。如何显示$ _FILES ['image']?
<?php
if(isset($_POST['submit'])) {
//preview page
$info = getimagesize($_FILES['image']['tmp_name']);
$imagetype = $info['mime'];
$tmpname = $_FILES['image']['tmp_name'];
$fp = fopen($tmpname,'r');
$data = fread($fp,filesize($tmpname));
$data = addslashes($data);
fclose($fp);
} else {
?>
<form enctype="multipart/form-data" action="http://www.example.com/submit" method="POST">
<input type="file" name="image" value="" size="50" />
<input type="submit" name="submit" value="submit" />
</form>
<?php
}
?>
答案 0 :(得分:9)
如果您不想将图像存储在服务器上,可以像这样预览:
<?php
if (isset($_FILES['image'])) {
$aExtraInfo = getimagesize($_FILES['image']['tmp_name']);
$sImage = "data:" . $aExtraInfo["mime"] . ";base64," . base64_encode(file_get_contents($_FILES['image']['tmp_name']));
echo '<p>The image has been uploaded successfully</p><p>Preview:</p><img src="' . $sImage . '" alt="Your Image" />;
}
但是如果你想将它存储在服务器上,只需存储它并在不改变页面的情况下显示它。
答案 1 :(得分:0)
我没有在MySQLyet中存储图像类型BLOB。如何显示$ _FILES ['image']?
与存储它的方式完全相同。
答案 2 :(得分:0)
因为“tmp_name”可能表明它是一个临时资源。将其保存到磁盘,然后显示,然后将其删除
<?
$preview_file = false;
if(is_uploaded_file($tmpname) && $info=@getimagesize($tmpname)){
$preview_file = "./tmp/tmp_preview.extension";
move_uploaded_file( $tmpname, realpath($preview_file) );
}
if($preview_file){
// show preview
}