2017-06-08 30 views
0

首先,我是PHP初學者。我試圖設計一個簡單的應用程序來練習處理表單元素。基本上,我上傳一個圖像,按下提交,然後圖像顯示在Web瀏覽器中。該表單完美地工作,但是我在將圖像存儲到變量中時無法顯示圖像。如何在將圖像存儲在變量中後打印圖像PHP

有誰知道如何做到這一點?

<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

https://www.w3schools.com/php/php_file_upload.asp – sumit

+0

的是,PHP是「暫時的」,如果你將值存儲到變量中,那麼值只存儲在這個會話中,一旦代碼執行結束,所有值都被刷新並且不再存在,如果你需要任何值來堅持,你需要將它存儲在某個地方持久選項是文件,數據庫,會話和cookie。會話過期,所以它們也是臨時的,session和cookie也不是爲了保存大數據而設計的,所以你應該考慮哪一個文件或數據庫最適合你 – Kazz

回答

1

你可以簡單地得到從上傳的MIME類型和讀回瀏覽器:

header('Content-Type: ' . $_FILES['dope']['type']); 
readfile($_FILES['dope']['tmp_name']); 

這將發送一個標頭正確的MIME類型,所以瀏覽器知道如何處理它,如果它是一個圖像,它將被內聯處理,如果它是一個瀏覽器將下載的應用程序。 readfile讀取文件並將其直接發送到緩衝區。

請注意,如果您希望將文件存儲爲將來的讀取內容,您需要將其移動並使用move_uploaded_file,例如move_uploaded_file將其存儲在數據庫中。

move_uploaded_file($_FILES['dope']['tmp_name'], $destination); 

然後你就可以提供服務的文件遍地提供$destination含有文件路徑:

header('Content-Type: ' . mime_content_type($destination)); 
readfile($destination);