PHP - 文件上传不起作用

詹姆士

当下面的代码运行时,它只返回echo "Did not move files!";目标是允许用户上传文件,现在就让它工作。

帐号.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">

上传.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 的权限,我最终更改了用于任何用户具有完全权限的每个目录。这并没有改变结果。

HTMH

你有3个错误:

  1. 你打了move_uploaded_file两次电话。
  2. 你声明了$tempName变量,但你$temp_namemove_uploaded_file函数中使用
  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!";
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章