PHP Загрузить изображение, затем показать

Я пытаюсь понять, как разрешить загрузку изображения с изображением, появляющимся после его загрузки. Я нашел этот учебник по загрузке изображений, но я не уверен, как их отображать. Должен ли я сохранить его в базе данных, а потом как-нибудь подтянуть его?

<form action="upload.php" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form> <?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } ?> 

Solutions Collecting From Web of "PHP Загрузить изображение, затем показать"

Я думаю, вам будет полезен класс загрузки или функция, которая возвращает информацию для загруженного изображения. Это поможет вам сохранить результаты или отобразить, как вы хотите. Вот один из них, основанный на том, что вы предоставили с обозначением:

Форма:

 <form action="" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form> 

Автор сценария:

 <?php function UploadImage($settings = false) { // Input allows you to change where your file is coming from so you can port this code easily $inputname = (isset($settings['input']) && !empty($settings['input']))? $settings['input'] : "fileToUpload"; // Sets your document root for easy uploading reference $root_dir = (isset($settings['root']) && !empty($settings['root']))? $settings['root'] : $_SERVER['DOCUMENT_ROOT']; // Allows you to set a folder where your file will be dropped, good for porting elsewhere $target_dir = (isset($settings['dir']) && !empty($settings['dir']))? $settings['dir'] : "/uploads/"; // Check the file is not empty (if you want to change the name of the file are uploading) if(isset($settings['filename']) && !empty($settings['filename'])) $filename = $settings['filename']; // Use the default upload name else $filename = preg_replace('/[^a-zA-Z0-9\.\_\-]/',"",$_FILES[$inputname]["name"]); // If empty name, just return false and end the process if(empty($filename)) return false; // Check if the upload spot is a real folder if(!is_dir($root_dir.$target_dir)) // If not, create the folder recursively mkdir($root_dir.$target_dir,0755,true); // Create a root-based upload path $target_file = $root_dir.$target_dir.$filename; // If the file is uploaded successfully... if(move_uploaded_file($_FILES[$inputname]["tmp_name"],$target_file)) { // Save out all the stats of the upload $stats['filename'] = $filename; $stats['fullpath'] = $target_file; $stats['localpath'] = $target_dir.$filename; $stats['filesize'] = filesize($target_file); // Return the stats return $stats; } // Return false return false; } ?> 

Использовать:

 <?php // Make sure the above function is included... // Check file is uploaded if(isset($_FILES["fileToUpload"]["name"]) && !empty($_FILES["fileToUpload"]["name"])) { // Process and return results $file = UploadImage(); // If success, show image if($file != false) { ?> <img src="<?php echo $file['localpath']; ?>" /> <?php } } ?> 

Обратная связь RAW:

 // This is what the array would look like on return of successful upload: Array ( [filename] => animal.png [fullpath] => /data/19/2/133/150/2948313/user/2524254/htdocs/mydomain/uploads/animal.png [localpath] => /uploads/animal.png [filesize] => 35702 ) 

да, вам нужно было бы сохранить путь к файлу в базе данных и извлечь его, но для вашего варианта использования вы можете сохранить путь к переменной $_SESSION а затем повторить путь сразу после завершения сценария.

Но сначала вам нужно завершить передачу файла с move_uploaded_file функции move_uploaded_file как без этого вы не сможете получить путь к файлу, поскольку они хранятся в виде временных файлов и удаляются после интерпретации сценария

http://php.net/manual/en/function.move-uploaded-file.php

После этого вы должны получить путь к файлу и использовать обычный тег HTML img

create <img src="" widht="" height="" /> навсегда u должен переместить изображение в путь к каталогу, и теперь я получаю имя изображения из таблицы после отправки формы .. и учитывая URL-адрес img..example .. ur каталог имя uploads / img. теперь ваше имя файла сохраняется в таблице базы данных как image01.jpg. образец

  $img= 'select imagename from table name '; if(count($img)) { <img src="<?php echo 'uploads/img/'.$img" widht="10px" height="20px" /></div> } 

если вы загружаете изображение на базе данных, загрузка данных будет медленной, потому что изображение слишком велико. лучший способ – загрузить изображение в папку и сохранить путь к файлу изображения в базе данных. Когда вы загружаете веб-корень изображения изображения в тег изображения

пример

Сохранение пути к файлу загруженного изображения в базу данных MySQL

GET путь к изображению

имя ссылается на имя файла на стороне клиента. Чтобы получить имя файла (включая полный путь) на стороне сервера, вам нужно использовать tmp_name:

 $check = fopen($_FILES["UploadFileName"]["tmp_name"], 'r');