PHP move_uploaded_file不会工作 - is_writable和is_dir = true

时间:2018-01-28 17:37:04

标签: php file uploading

我在服务器上上传文件时遇到了问题。

我的代码:

$path = "produkty/$kategorie/$last_id/";
if(!is_dir($path)){
  mkdir($path, 0777, true);
}
if (is_dir($path) && is_writable($path)) { echo "ok"; }

它回来了。

上传代码如下所示:

move_uploaded_file($_FILES["uvodniobr"]["tmp_name"], $path."uvodniobr.".$ext)

如果我回应:

echo $path."uvodniobr.".$ext;

它会返回: produkty / kategorie / 35 / uvodniobr.png

检查文件大小,扩展程序工作正常,它只是赢得了上传。 你知道我的代码有什么问题吗?谢谢

解决 编辑:我试图上传文件超过2MB而不改变xampp / php / php.ini upload_max_filesize = 2M中的php.ini。 谢谢你的回答。

2 个答案:

答案 0 :(得分:1)

我说问题是因为你需要在move_uploaded_file中使用相对路径,而它需要绝对路径所以 您应该使用document_root来获取这样的绝对路径:

  $target_path = $_SERVER['DOCUMENT_ROOT'] . '/' .$path; // if not work try    $target_path = $_SERVER['DOCUMENT_ROOT'] . $path;
  move_uploaded_file($_FILES["uvodniobr"]["tmp_name"], 
  $target_path."uvodniobr.".$ext);

最好用if检查结果来包围它

$target_path = $_SERVER['DOCUMENT_ROOT'] . '/' .$path; // if not work try    $target_path = $_SERVER['DOCUMENT_ROOT'] . $path;
if (move_uploaded_file($_FILES["uvodniobr"]["tmp_name"], 
  $target_path."uvodniobr.".$ext)) {
     echo "File is valid, and was successfully uploaded.\n";
} else {
     echo "Upload failed";
}

帮助链接move_uploaded_file & relative path

答案 1 :(得分:0)

这是我的错,我忘记在xampp / php / php.ini中将upload_max_filesize=2M更改为upload_max_filesize=16M

我的不好,对不起,谢谢你的努力,我真的很感激。