2016-12-02 90 views
1

我正在編寫一些上傳和顯示圖像的代碼。但是有一些錯誤。我已經設置了圖像文件限制。我嘗試運行並上傳大於我設置的文件限制的圖像文件,假設圖像不會上傳,顯示並移動到文件夾「images /」,但它仍然可以上傳,顯示並移動到文件夾。我該怎麼做才能解決這個問題?我非常感謝你的幫助。圖像大小超過限制大小設置,但仍然可以上傳,顯示並移動到文件夾

<!DOCTYPE html> 
<html> 
<head> 
<title>Upload image</title> 
</head> 

<?php 
    $folder = "img/"; 
    $uploadOK = 1; 

    if(isset($_POST['upload_img'])) 
    { 
     $file_name = $_FILES['image']['name']; 
     $file_type = $_FILES['image']['type']; 
     $file_size = $_FILES['image']['size']; 
     $file_tmp_name = $_FILES['image']['tmp_name']; 

     //Check file size 
     if($_FILES['image']['size'] > 500000) 
     { 
      $uploadOK = 0; 
      echo "Sorry your file is too large. Please reupload.".'<br/>'; 
     } 

     if($uploadOK = 1) 
     { 
      if($file_name) 
      { 
       move_uploaded_file($file_tmp_name , "img/$file_name"); 
      } 

      if(is_dir($folder)) 
      { 
       if($handle = opendir($folder)) 
       { 
        while(($file = readdir($handle)) != false) 
        { 
         if($file ==='.'|| $file === '..') 
         { 
          continue; 
         } 
         else 
         { 
          echo '<img src = "img/'.$file.'" width="150" height="150">'.'<br/>';   
         } 
        } 
        closedir($handle); 
       } 
      } 
     } 
    } 

?> 

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

Image of my result 附加的圖片是我的結果。鬱金香的圖像超過了文件限制。

+2

如果( $ uploadOK = 1)正在創建problem.Make if($ uploadOK == 1) – XYZ

+1

如果描述if($ uploadOK = 1)是罪魁禍首,則表明您將一個值傳遞給$ uploadOK將其更改爲$ uploadOK == 1 –

+0

嗨,我已經試過,它的作品,但圖像聖生病將被移動到文件夾「images /」。我怎樣才能阻止它移動到文件夾? – user9791

回答

0

更改此:

if($uploadOK = 1) 

if($uploadOK == 1) 

此外,limting文件大小的另一個層也設置你的upload_max_filesize設置在php.ini

+1

我可以知道什麼是php.ini? – user9791

+0

@NasrinYow,它是PHP的配置。它通常位於Web服務器的PHP文件夾(例如Apache)上。 – Ronald

+0

@Ronald對於'php.ini'文件無關緊要,因爲Nasrin Yow已經有了文件大小的限制。 – 2016-12-02 05:18:27

0
if($uploadOK = 1) 

在這裏,你正在分配值1 to uploadOk as =是賦值運算符,所以uploadO的值k永遠是一個因此永遠是真的。 你需要做的是用comparrison運營商即==將檢查uploadOK的值等於1或不

所以更改,

if($uploadOK = 1) 

if($uploadOK == 1) 
+0

@mahethekiller我有嘗試,它的工作原理。非常感謝你。 – user9791