簡體   English   中英

PHP-文件上傳不起作用

[英]PHP - File upload not working

當下面的代碼運行時,它僅返回echo "Did not move files!"; 目標是允許用戶上傳文件,現在就使它工作。

account.php

<form action="includes/upload.inc.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">

upload.inc.php

<?php
if(isset($_POST['submit'])) {

$uploadsDir = '../uploads/';
$name = basename($_FILES["fileToUpload"]["name"]);
$tempName = basename($_FILES["fileToUpload"]['tmp_name']);
$error = $_FILES['fileToUpload']['error'];

if ($error > 0) {
    echo "Error: " . $error . "<br />";
} else {
    move_uploaded_file($temp_name, "$uploadsDir/$name");

    if(move_uploaded_file($temp_name, "$uploadsDir/$name")) {

        echo "Successful";
        echo "Upload: " . $name . "<br />";
        echo "Stored in: Uploads Directory!";
    } else {
        echo "Did not move files!";
    }
}
}
?>

在本地主機之外托管服務器,最初以為我的目錄沒有rwx的權限,我最終更改了所有用戶用來擁有全部權限的每個目錄。 這並沒有改變結果。

if(isset($_POST['submit'])) {

$uploadsDir = '/';
$name = ($_FILES["fileToUpload"]["name"]);
$tempName = ($_FILES["fileToUpload"]['tmp_name']);
$error = $_FILES['fileToUpload']['error'];

if ($error > 0) {
    echo "Error: " . $error . "<br />";
} else {

    if(move_uploaded_file($tempName, __DIR__.'/'.$name)) {

        echo "Successful";
        echo "Upload: " . $name . "<br />";
        echo "Stored in: Uploads Directory!";
    } else {
        echo "Did not move files!";
    }
}
}

您有3個錯誤:

  1. 您兩次調用過move_uploaded_file
  2. 您聲明了$tempName變量,但是在move_uploaded_file函數中使用了$temp_name
  3. 在聲明臨時文件路徑變量時使用了基basename

您的最終代碼應如下所示:

if (isset($_POST['submit'])) {
    $uploadsDir = '../uploads/';
    $name = basename($_FILES["fileToUpload"]["name"]);
    $tempName = $_FILES["fileToUpload"]['tmp_name'];
    $error = $_FILES['fileToUpload']['error'];

    if ($error > 0) {
        echo "Error: " . $error . "<br />";
    } else {
        if (move_uploaded_file($tempName, "$uploadsDir/$name")) {

            echo "Successful";
            echo "Upload: " . $name . "<br />";
            echo "Stored in: Uploads Directory!";
        } else {
            echo "Did not move files!";
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM