繁体   English   中英

文件上传表单未上传

[英]File upload form is not uploading

我正在为学校运行一个小型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为姓
性别是性

该项目使用荷兰语,因此对荷兰语名称感到抱歉。

表单正常运行,并且出现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"];
                }

但是我的代码完全跳过了这一步。 它仍然没有上传图片,而是转到确认的注册页面。

编辑:我解决了我的问题。 看看我的其他答案。 它包含我的错误。

您是否已确认将接收文件的文件夹具有写权限?

编辑代码,如下所示:

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

if( $upload ) {
  echo "Success!";
} else {
  echo "Error:" . $_FILES["image_to_upload"]["error"];
}

这将返回所有错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM