php - 文件上传表单未上传
问题描述
我正在为学校运行一个小型 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"];
}
但是我的代码完全跳过了这一点。它仍然没有上传图片,只是进入确认的注册页面。
编辑:我解决了我的问题。看看我的另一个回答。它包含我的错误。
解决方案
我在@04FS 的帮助下解决了这个问题。在将 $target_file 变量中的“名称”更改回“名称”并将缺少的 ' 添加到它工作并成功上传图片的 HTML 代码后,我错误地将“名称”更改为“image_to_upload”。
推荐阅读
- python - 如何使用 Flask-Babel 在 flask_wtf 中本地化 QuerySelectField 返回的数据
- php - Php - didn't update row in mysql by using PDO
- java - Error while using ExampleMatcher with @embeded entity in spring data jpa
- python - Limit the decimal places in a float
- python - Divio Cloud local Docker database connection
- kotlin-native - Kotlin/Native share code project startup?
- google-app-engine - 新 gcloud 系统中的 GAE appcfg.py request_logs 相当于什么
- php - 如何将 Wordpress 帖子中的链接重定向到子目录?
- python - 将位哈希转换为十六进制,然后再转换回位哈希
- mongodb - 如何在 mongo 聚合中使用 map 内部查找来查找数组中的所有元素