首页 > 解决方案 > 文件上传表单未上传

问题描述

我正在为学校运行一个小型 PHP 项目,我正在尝试设置一个表单,用户可以在其中上传个人资料图片。

我尝试使用 W3Schools,但无法让它与我的代码一起使用。这是该页面的链接:https ://www.w3schools.com/php/php_file_upload.asp

首先我声明一些变量:

$target_dir = "profilepic/";
$target_file = $target_dir . basename($_FILES["image_to_upload"]["name"]);

然后我将上传的文件移动到正确的目录。注册后,使用以下命令对其进行检查:

move_uploaded_file($_FILES["image_to_upload"]["tmp_name"], $target_file);

我已经在表单中设置了参数,因此用户只能选择图像文件:

<form action='index.php' method='post' enctype='multipart/form-data'>
    <input type= 'text' name='leerlingid' placeholder='Username' required>
    <input type= 'text' name='mail' placeholder='Email Address' required>
    <input type= 'password' name='wachtwoord' placeholder='Password' required>
    <input type= 'password' name='wachtwoordcheck' placeholder='Password confirmation' required>
    <input type= 'text' name='voornaam' placeholder='First name' required>
    <input type= 'text' name='achternaam' placeholder='Last name' required>
    <select name='sekse'>
        <option value='Man'>Man</option>
        <option value='Vrouw'>Vrouw</option>
    </select>
    Profile picture:
    <INPUT id='image_to_upload' NAME=image_to_upload' TYPE='file' accept='image/x-png,image/gif,image/jpeg' required>
    <input type='submit' name='reg' value='Register'>

    </form>

wachtwoord 是密码
leerlingid 是用户名
voornaam 是名字
achternaam 是姓氏
sekse 是性别

这个项目是荷兰语的,所以对荷兰人的名字感到抱歉。

表单运行正确,我收到 0 个错误,但在用户注册后没有上传任何文件。我正在使用学校服务器,但如果我是正确的 $target_dir 应该从放置 form.php 的位置开始。

我不知道ini文件中的file_uploads = On,但我可以从FileZilla上传我的文件,所以我认为是。(虽然我无权访问该文件,所以我无法检查或更改它)。

如果有人能指出我为什么它不起作用,那将是一个很大的帮助。

编辑:

我现在也尝试了这段代码:

                    $upload = move_uploaded_file( $_FILES["image_to_upload"]["tmp_name"], $target_file );
                if( $upload ) {
                    header("Location: good.php");
                } else {
                    header("Location: error.php");
                //echo "Error:" . $_FILES["image_to_upload"]["error"];
                }

但是我的代码完全跳过了这一点。它仍然没有上传图片,只是进入确认的注册页面。

编辑:我解决了我的问题。看看我的另一个回答。它包含我的错误。

标签: phpformsfileupload

解决方案


我在@04FS 的帮助下解决了这个问题。在将 $target_file 变量中的“名称”更改回“名称”并将缺少的 ' 添加到它工作并成功上传图片的 HTML 代码后,我错误地将“名称”更改为“image_to_upload”。


推荐阅读