这是我的 uploads.php
代码:
<?php ini_set('display_errors', 1); error_reporting(E_ALL); $uploads_dir = '/tmp' . DIRECTORY_SEPARATOR; $tmp_name = $_FILES["file"]["tmp_name"]; $name = basename($_FILES["file"]["name"]); echo move_uploaded_file($tmp_name, $uploads_dir . $name);
它返回 1
(又名 true
),但文件不会复制到 /tmp
。
如果我将 $uploads_dir
设置为具有权限 777 的不同目录,它就可以工作。
如果目标目录错误或没有正确的权限,我会收到错误消息。
/tmp
目录作为我猜的正确权限:
$ ls -l / | grep tmp drwxrwxrwt 21 root root 20480 apr 21 17:39 tmp
那么为什么它返回 true
但不复制任何内容?
P粉1292756582024-04-02 09:30:40
如果你的tmp目录与uploads.php文件在同级更改:
$uploads_dir = '/tmp' . DIRECTORY_SEPARATOR;
对此:
$uploads_dir = __DIR__ . '/tmp' . DIRECTORY_SEPARATOR;
或者如果该文件夹位于根级别(又名 / ) 您需要下降到相同的级别,例如:
$uploads_dir = __DIR__ . '/../../tmp' . DIRECTORY_SEPARATOR;
希望对你有帮助。