簡體   English   中英

顯示通過網絡表單上傳的圖像,而不存儲在文件夾或數據庫中

[英]Displaying An Image uploaded via a web form without storing in a folder or database

我有一個項目,需要網站訪問者填寫表單,其中一部分是文件上傳。 我希望客戶端能夠在單擊按鈕后查看圖片; 該數據目前尚未存儲在任何文件夾或數據庫中; 我只希望頁面加載表單數據。 我的代碼不起作用:當我單擊按鈕時,會彈出一個對話框,詢問我要如何處理php文件。 選項包括:使用Firefox打開,保存等。請問,我在哪里出錯? 這是processphoto_form.php

<?php
if(isset($_FILES['userFoto']['name']) && $_FILES['size']<=1000000){
$tempName = $_FILES['userFoto']['temp_name'];
$fhand = fopen($tempName, 'r');
$userFoto = fread($fhand, filesize($tempName));
$userFoto = addslashes($userFoto);
fclose($fhand);
$user = $_POST['user'];
header('Content-type:$userFoto/JPEG');
echo"<img scr = '$userFoto' height ='100' width = '100'/>"."<br/>";
cho$user;
}

?>

的HTML

<form enctype = 'multipart/form-data' method ='post' action ='processphoto_form.php'>
<table>
<tr><td>Name</td><td><input type = 'text' name = 'user'/></td></tr>
<tr><td>Foto</td><td><input type = 'file' name = 'userFoto'/></td></tr>
<tr><td colspan ='2' ><input type = 'submit' value = 'VIEW DATA'/></td></tr>
</table>
</form>

如果您確定上傳的圖片是jpeg且是正方形,則可以執行以下操作:

    $tempName = $_FILES['userFoto']['temp_name'];    
    list($originalWidth, $originalHeight) = getimagesize($tempName);
    $src = imagecreatefromjpeg($tempName);
    $img = imagecreatetruecolor(100, 100);
    ImageCopyResampled($img, $src, 0, 0, 0, 0, 100, 100, $originalWidth, $originalHeight);
    header('Content-Type: image/jpeg');
    ob_start();
    imagejpeg($img);
    $size = ob_get_length();
    header("Content-Length: " . $size);
    ob_end_flush();
    imagedestroy($img);
    exit;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM