【发布时间】:2020-07-30 08:49:16
【问题描述】:
这就是表格users 的样子:
---------------------------------------------------
| ID | user | avatar |
| 3 | ane22 | /img/default-avatar.png |
| 4 | cuz33 | /img/default-avatar.png |
上传按钮:
<form method="POST"
action=""
enctype="multipart/form-data">
<input type="file"
name="uploadfile"
value="" />
<div>
<input type="submit" name="action" value="Upload">
</div>
</form>
这就是我尝试更新当前用户的个人资料图片的方式:
} else if ($_POST['action'] == 'Upload') {
//action for delete
error_reporting(0);
$msg = "";
$name = $_SESSION["user"];/* user */
// If upload button is clicked ...
if (isset($_POST['upload'])) {
$filename = $_FILES["uploadfile"]["name"];
$tempname = $_FILES["uploadfile"]["tmp_name"];
$folder = "image/".$filename;
// Get all the submitted data from the form
$sql = "UPDATE users SET avatar='" . $filename . "' WHERE user='" . $name . "'";
// Execute query
mysqli_query($link, $sql);
// Now let's move the uploaded image into the folder: image
if (move_uploaded_file($tempname, $folder)) {
$msg = "Image uploaded successfully";
}else{
$msg = "Failed to upload image";
}
}
$result = mysqli_query($link, "SELECT * FROM users");
当我按下upload 按钮时,什么也没有发生。我的桌子也没有任何变化。有什么建议吗?
【问题讨论】:
-
你确定
isset($_POST['upload'])是正确的吗?你检查过$_POST包含的内容吗? -
WHERE user='" . $id . "'你确定吗? -
您的查询易受 SQL 注入攻击,请考虑使用prepared statements
-
是否有上传文件?
-
您可以尝试先上传图片再更新到数据库。如下所示: if (move_uploaded_file($tempname, $folder)) { $msg = "图片上传成功"; mysqli_query($link, $sql); }else{ $msg = "图片上传失败"; }