【问题标题】:Fix Error: Image Upload Script - Only variables should be passed by reference修复错误:图像上传脚本 - 只能通过引用传递变量
【发布时间】:2018-03-09 04:45:55
【问题描述】:

测试文件上传脚本 我收到此错误消息: 严格的标准:只有变量应该在

中通过引用传递

第 8 行有问题的是: $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));

我该如何解决这个问题?

这是我尝试使用的完整脚本,发布于

https://www.tutorialspoint.com/php/php_file_uploading.htm

脚本如下:

<?php
   if(isset($_FILES['image'])){
      $errors= array();
      $file_name = $_FILES['image']['name'];
      $file_size = $_FILES['image']['size'];
      $file_tmp = $_FILES['image']['tmp_name'];
      $file_type = $_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));

      $expensions= array("jpeg","jpg","png");

      if(in_array($file_ext,$expensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }

      if($file_size > 2097152) {
         $errors[]='File size must be excately 2 MB';
      }

      if(empty($errors)==true) {
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>
<html>
   <body>

      <form action = "" method = "POST" enctype = "multipart/form-data">
         <input type = "file" name = "image" />
         <input type = "submit"/>

         <ul>
            <li>Sent file: <?php echo $_FILES['image']['name'];  ?>
            <li>File size: <?php echo $_FILES['image']['size'];  ?>
            <li>File type: <?php echo $_FILES['image']['type'] ?>
         </ul>

      </form>

   </body>
</html>

【问题讨论】:

    标签: php image upload


    【解决方案1】:

    您必须使用时间变量来保存分解结果

    $tmp      = explode('.',$_FILES['image']['name']);
    $file_ext = strtolower(end($tmp));
    

    简单的解释是您必须将变量传递给“结束”函数,而不是返回它的函数。

    【讨论】:

      【解决方案2】:

      将explode的结果赋值给一个变量,并将该变量传递给end,按照这个例子进行

      $tmp = explode('.', $fileName);
      $fileExtension = end($tmp);
      

      您也可以使用以下方法获取扩展名

      $fileExtension = pathinfo($fileName, PATHINFO_EXTENSION);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-02
        • 2012-04-08
        • 2015-02-02
        • 2017-07-08
        • 2013-06-21
        • 2012-10-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多