首頁  >  問答  >  主體

無法將上傳檔案移到 /tmp

這是我的 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粉092778585P粉092778585174 天前271

全部回覆(1)我來回復

  • P粉129275658

    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;
    

    希望對你有幫助。

    回覆
    0
  • 取消回覆