2014-02-22 192 views
0

這是我的uploadImage.php。我想在他們上傳之後立即顯示圖片。 問題是,我不是什麼似乎是問題。我試圖改變它的一些,並來到這個代碼。但仍然沒有得到我預期的結果。任何人都在意幫助我?上傳後顯示圖片

<?php 

    $tempFile = $_FILES["image"]["tmp_name"]; 
    $name = $_FILES["image"]["name"]; 
    $uploadDirectory = "/home/trainee/Desktop/tmp/"; 

    $allowedExts = array("gif", "jpeg", "jpg", "png"); 
    $temp = explode(".", $_FILES["file"]["name"]); 
    $extension = end($temp); 
    if ((($_FILES["image"]["type"] == "image/gif") 
    || ($_FILES["image"]["type"] == "image/jpeg") 
    || ($_FILES["image"]["type"] == "image/jpg") 
    || ($_FILES["image"]["type"] == "image/pjpeg") 
    || ($_FILES["image"]["type"] == "image/x-png") 
    || ($_FILES["image"]["type"] == "image/png")) 
    && ($_FILES["image"]["size"] < 20000) 
    && in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["image"]["error"] > 0) 
    { 
     echo "Return Code: " . $_FILES["image"]["error"] . "<br>"; 
    } 
    else 
    { 
     echo "Upload: " . $name. "<br>"; 
     echo "Type: " . $_FILES["image"]["type"] . "<br>"; 
     echo "Size: " . ($_FILES["image"]["size"]/1024) . " kB<br>"; 
     echo "Temp file: " . $tempFile . "<br>"; 

     if (file_exists("$uploadDirectory" . $name)) 
     { 
     echo $name . " already exists. "; 
     } 
     else 
     { 
    move_uploaded_file($tempFile, "$uploadDirectory/$name"), 
    $name 
     echo "Stored in: " ."$uploadDirectory". $name; 
     } 
    } 
} 
else { 
echo "invalid File!"; 
} 
?> 
<img src="upload/<?php=$name?>" height=200 width=100"> 
+1

旁註:這條線路是壞了'move_uploaded_file($臨時文件, 「$ uploadDirectory/$名稱」),$名稱回聲 「中存儲的:」 「$ uploadDirectory」 $名;' - [閱讀()函數中的手冊](http://php.net/move_uploaded_file)。一旦你建立了正確的變量,你只需要回顯它 –

+0

你在那裏迷失了我的好友,將會像回聲「存儲在:」.move_uploaded_file($ tempFile,「$ uploadDirectory/$ name」),這是否正確? – user3335903

+0

請參閱下面給出的答案。 –

回答

0

這是另一篇文章,可能有所幫助。 how to preview uploaded image in php form

據我所知,真的沒有辦法預覽圖像,直到它被上傳。由於我們不希望重新加載頁面,或者在我們預覽上傳之前讓用戶提交表單,我們需要使用ajax。

在提交表單之前,有相當多的ajax(javascript + php)選項和用於上傳和預覽圖像的教程。這裏有一個可能有用的教程。

0

這裏是你的代碼的修復:

<?php 
$tempFile = $_FILES["image"]["tmp_name"]; 
$name = $_FILES["image"]["name"]; 
$uploadDirectory = "/home/trainee/Desktop/tmp/"; 

$allowedExts = array("gif", "jpeg", "jpg", "png"); 
$temp = explode(".", $_FILES["file"]["name"]); 
$extension = end($temp); 
$allowedFileTypes = array("image/gif", "image/jpeg", "image/jpg", "image/pjpeg", 
     "image/x-png", "image/png"); 
if (in_array($_FILES["image"]["type"], $allowedFileTypes) 
    && $_FILES["image"]["size"] < 20000 
    && in_array($extension, $allowedExts)) 
{ 
    if ($_FILES["image"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["image"]["error"] . "<br>"; 
    } 
    else 
    { 
    echo "Upload: " . $name. "<br>"; 
    echo "Type: " . $_FILES["image"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["image"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $tempFile . "<br>"; 

    if (file_exists($uploadDirectory . $name)) 
    { 
     echo $name . " already exists. "; 
    } 
    else 
    { 
     move_uploaded_file($tempFile, $uploadDirectory . $name); 
     echo "Stored in: " . $uploadDirectory . $name; 
    } 
    } 
} 
else 
{ 
    echo "invalid File!"; 
} 
?> 
<img src="upload/<?php echo $uploadDirectory . $name; ?>" height="200" width="100"> 

注:您的上傳目錄必須應該從網絡用戶訪問。目前它似乎無法訪問! 。 :(

+0

如何啓用它?唯一的輸出,即使我正在上傳.jpg文件也是「無效文件」 – user3335903

+0

將文件上傳到'$ _SERVER ['DOCUMENT_ROOT']/some-directory/upload-directory'中,並且對於'無效文件'檢查喲通過回顯每個條件表達式進行驗證。 – vinaykrsharma

+0

是否有任何文件?所以我不能再打擾你了?謝謝:) – user3335903