【发布时间】:2021-05-22 17:45:49
【问题描述】:
我创建了一个注册表单。另外,我想添加个人资料图片。但是,我的代码出错了。
警告:第 29 行 C:\xampp\htdocs\db\register.php 中未定义的数组键“fileupload”
警告:尝试访问第 29 行 C:\xampp\htdocs\db\register.php 中 null 类型值的数组偏移量
致命错误:未捕获的 ValueError:C:\xampp\htdocs\db\register.php:30 中的路径不能为空 堆栈跟踪:#0 C:\xampp\htdocs\db\register.php(30): file_get_contents ('') #1 {main} 在第 30 行的 C:\xampp\htdocs\db\register.php 中抛出
Line29 = $fileName = $_FILES['fileupload']['name']; Line30 = $picture = file_get_contents($fileName);
我该如何解决这个问题?
<?php $fileName = $_FILES['fileupload']['name'];
$picture = file_get_contents($fileName);
?>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" >
<div class="mb-3">
<label for="exampleFormControlTextarea1" class="form-label">First Name</label>
<textarea class="form-control" name="fName" rows="1" required></textarea>
<span class="error"> <?php echo $fNameErr; ?></span>
</div>
<div class="mb-3">
<label for="exampleFormControlTextarea1" class="form-label">Last Name</label>
<textarea class="form-control" name="lName" rows="1"></textarea>
<span class="error"> <?php echo $lNameErr; ?></span>
</div>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Email address</label>
<input type="email" class="form-control" name="email" aria-describedby="emailHelp">
<div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div>
<span class="error"> <?php echo $emailErr; ?></span>
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Password</label>
<input type="password" class="form-control" name="password">
<span class="error"> <?php echo $passwordErr; ?></span>
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Claim Password</label>
<input type="password" class="form-control" name="claimPassword">
<span class="error"> <?php echo $claimPasswordErr; ?></span>
<span class="error"> <?php echo $differentPasswordErr; ?></span>
</div>
<div class="mb-3">
<label for="exampleFormControlTextarea1" class="form-label">Phone Number</label>
<textarea class="form-control" value="1-(555)-555-5555" name="telephone" rows="1"></textarea>
<span class="error"> <?php echo $telephoneErr; ?></span>
<span class="error"> <?php echo $telephoneErr2; ?></span>
</div>
<div class="mb-3">
<label for="exampleFormControlTextarea1" class="form-label">Department</label>
<textarea class="form-control" name="department" rows="1"></textarea>
<span class="error"> <?php echo $departmentErr; ?></span>
</div>
<div class="mb-3">
<label for="exampleFormControlTextarea1" class="form-label">Institution</label>
<textarea class="form-control" name="institution" rows="1"></textarea>
<span class="error"> <?php echo $instErr; ?></span>
</div>
<div class="mb-3">
<label for="formFile" class="form-label">Pick a profile picture</label><br>
<input name="fileupload" type="file" class="form-control-file" id="exampleFormControlFile1" required><br><br>
<span class="error"> <?php echo $pictureErr; ?></span>
</div>
<div class="exampleFormControlTextarea1">
<label for="example-date-input" class="form-label">Date of birth</label>
<span class="error"> <?php echo $birthErr; ?></span>
<div class="col-10">
<input class="form-control" type="date" value="2021-01-01" name="birth">
</div>
</div>
<br>
<label for="exampleFormControlTextarea1" class="form-label">Gender</label>
<div class="form-check">
<input class="form-check-input" type="radio" name="flexRadioDefault" name="gender">
<label class="form-check-label" for="flexRadioDefault1">
Female
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="flexRadioDefault" name="gender2" >
<label class="form-check-label" for="flexRadioDefault2">
Male
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="flexRadioDefault" name="gender3" >
<label class="form-check-label" for="flexRadioDefault2">
I do not want to say
</label>
<span class="error"> <?php echo $genderErr; ?></span>
</div>
</div>
<br>
<button type="submit" name= "submit" class="btn btn-primary">Sign Up</button>
<br><br>
<a href="login.php">Do you have an account? Click here to sign in.</a>
</form>
</div>
</div>
【问题讨论】:
-
如果你愿意,我也可以添加插入 sql 代码..
-
错误提示
Undefined array key "fileupload"这意味着您正在访问该页面而没有上传文件,这通常是当您对 GET 请求使用同一页面时出现问题(在这种情况下显示表单)和 POST 请求(处理表单的结果)。通常,处理上传的代码与包含表单的视图是分开的,因为在单个视图文件中不会发生太多事情