Показать $ _FILES после отправки формы

Как отобразить изображение, загруженное после отправки формы? После отправки формы это будет страница предварительного просмотра, поэтому я не сохраняю тип BLOB изображения в MySQLyet. Как отобразить $ _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 } ?> 

Если вы не хотите сохранять изображение на сервере, вы можете просмотреть его следующим образом:

 <?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" />; } 

Но если вы хотите сохранить его на сервере, просто сохраните его и покажите, не меняя страницу.

Я не сохраняю тип BLOB изображения в MySQLyet. Как отобразить $ _FILES ['image']?

точно так же, как если бы вы его сохранили.

Поскольку «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 }