2016-12-02 34 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

相关问题