我面临的问题是:
Notice: Undefined index: fileToUpload in C:\XAMPP\htdocs\littletodoapp\profile.php on line 56
$folder = "uploads/";
$upload_image = $folder . basename($_FILES["fileToUpload"]["name"]);
if(isset($_POST["updatePhoto"])) {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $upload_image)) {
$checkImage = "SELECT imageID FROM photos WHERE userID = :userID";
$checkImage = $pdo->prepare($checkImage);
$checkImage->bindParam(':userID',$_SESSION['user_id']);
$checkImage->execute();
$row = $checkImage->fetch(PDO::FETCH_ASSOC);
if($checkImage->rowCount() > 0) {
$checkImage = "UPDATE photos SET (imageID, userID) VALUES (:uploadImage, :userID WHERE userID = :userID";
$checkImage = $pdo->prepare($checkImage);
$checkImage->bindParam(':uploadImage',$upload_image);
$checkImage->bindParam(':userID',$_SESSION['user_id']);
$checkImage->execute();
} else {
echo "Sorry, there was an error uploading your file.";
}
}
}
我不是100%为什么在我第一次加载profile.php.
时收到此错误的原因当然如果我尝试提交新图像,错误就会消失,但随后我的新图像不会上传,当然我看到错误是回声' d。
有人可以帮我指点正确的方向吗?我很乐观,我忽略了一些小事。
提前谢谢。
答案 0 :(得分:1)
您的问题就像在上传之前和之后调用相同的脚本一样。虽然这会导致许多潜在的问题,但这是一种广泛传播的习惯,特别是在初学者教程中。对于将来,您应该将这些内容分开:呈现和处理表单是两个独立的事情,因此请将代码分开。这可以防止此类问题,并使代码更容易阅读。
然而,在你目前的情况下,这意味着持有$_FILES["fileToUpload"]["name"]
的行可能会抛出警告(这不是错误!),因为在上传之前该变量尚未设置。它仅存在于处理上载文件的脚本运行中,因此执行HTTP POST
请求时。