当文件名有空格时,php move_uploaded_file无效

时间:2015-12-02 14:33:44

标签: php file-upload

我正在将文件上传到服务器。除非上传的文件中有空格,否则一切正常。

我试过用:     str_replace(“”,“_”,$ _FILES ['image'] ['name']);

我的代码是

 $image_name= str_replace(" ", "_", $_FILES['image']['name']);
               $image_tmp_name = $_FILES['image']['tmp_name'];
               $image=$_FILES['image'];

              $url = "http://jkshahclasses.com/push_images/$image_name";
                if(move_uploaded_file($image_tmp_name,"../../push_images/$image_name"))
                {
                    echo "file uploaded";
                }
                else
                {
                    echo "error: file not uploaded";
                    }

提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用此功能在上传之前敲击您的文件名:

  public function slugify($text)
  {
    // replace all non letters or digits by _
    $text = preg_replace('/\W+/', '_', $text);

    // trim and lowercase
    $text = strtolower(trim($text, '_'));

    return $text;
  }

但首先你必须得到文件名,你可以用这个函数来做:

$file_name = pathinfo($path, PATHINFO_FILENAME);

如果您想获得文件扩展名,则必须使用:

$file_ext = pathinfo($path, PATHINFO_EXTENSION);