PHP move_uploaded_file 将不起作用 - is_writable 和 is_dir = true
PHP move_uploaded_file won't work - is_writable and is_dir = true
我在服务器上上传文件时遇到问题。
我的代码:
$path = "produkty/$kategorie/$last_id/";
if(!is_dir($path)){
mkdir($path, 0777, true);
}
if (is_dir($path) && is_writable($path)) { echo "ok"; }
它 return 没问题。
上传代码如下所示:
move_uploaded_file($_FILES["uvodniobr"]["tmp_name"], $path."uvodniobr.".$ext)
如果我回显:
echo $path."uvodniobr.".$ext;
它将return这样:produkty/kategorie/35/uvodniobr.png
诸如检查文件大小、扩展名之类的东西工作正常,就是无法上传。
你知道我的代码有什么问题吗?谢谢
已解决
编辑:我试图在不更改 xampp/php/php.ini upload_max_filesize=2M 中的 php.ini 的情况下上传超过 2MB 的文件。
谢谢你的回答。
我猜问题是因为你在 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";
}
是我的错,我忘了在xampp/php/php.ini
中把upload_max_filesize=2M
改成upload_max_filesize=16M
对不起,谢谢你的努力,我真的很感激。
我在服务器上上传文件时遇到问题。
我的代码:
$path = "produkty/$kategorie/$last_id/";
if(!is_dir($path)){
mkdir($path, 0777, true);
}
if (is_dir($path) && is_writable($path)) { echo "ok"; }
它 return 没问题。
上传代码如下所示:
move_uploaded_file($_FILES["uvodniobr"]["tmp_name"], $path."uvodniobr.".$ext)
如果我回显:
echo $path."uvodniobr.".$ext;
它将return这样:produkty/kategorie/35/uvodniobr.png
诸如检查文件大小、扩展名之类的东西工作正常,就是无法上传。 你知道我的代码有什么问题吗?谢谢
已解决 编辑:我试图在不更改 xampp/php/php.ini upload_max_filesize=2M 中的 php.ini 的情况下上传超过 2MB 的文件。 谢谢你的回答。
我猜问题是因为你在 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";
}
是我的错,我忘了在xampp/php/php.ini
中把upload_max_filesize=2M
改成upload_max_filesize=16M
对不起,谢谢你的努力,我真的很感激。