我是PHP的新手,我遵循了这方面的教程,但我无法完成这项工作。当我上传图片时,它会给我发送失败的消息,但为什么我没有真正看到任何问题,我尝试将代码写入2次但仍然遇到同样的问题。
此代码的想法是能够上传图像,一旦上传实际上是用户个人资料图片(该功能的其他文件中还有更多代码),但它不起作用,因为图片没有上传,您可以尝试上传任何类型的图片,但它只会显示upload = failed消息,如果(move_uploaded_file($ fileTmpName,$ fileDestination))不是,则应该发生这种情况。对,但为什么它不对呢?我真的不理解那些人,因为这个,我的项目已被禁止了2天。我搜索过,有些人谈到了权限,但我真的不知道它们的意思,我怎么能允许上传或编辑文件。
所以我真正的问题是我无法将想要上传的文件移到"上传"文件,它显示upload = failed而不是upload = success,因为它无法将上传文件移动到" uploads"文件夹中。
这是它开始提出问题的地方:
if (move_uploaded_file($fileTmpName, $fileDestination)) {
$sql = "UPDATE profileimg SET status=0 WHERE userid='$id'";
$result = mysqli_query($conn, $sql);
header("Location: ../index.php?upload=success");
}
else {
header("Location: ../index.php?upload=failed");
}
感谢您的任何想法!
这是完整的代码:
<?php
session_start();
include_once 'dbh-inc.php';
$id = $_SESSION['user_id'];
if (isset($_POST['submit'])) {
$file = $_FILES['avatar'];
$fileName = $_FILES['avatar']['name'];
$fileTmpName = $_FILES['avatar']['tmp_name'];
$fileSize = $_FILES['avatar']['size'];
$fileError = $_FILES['avatar']['error'];
$fileType = $_FILES['avatar']['type'];
$fileExt = explode('.', $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowed = array('jpg', 'jpeg', 'png', 'ico');
if (in_array($fileActualExt, $allowed)) {
if ($fileError === 0) {
if ($fileSize < 500000) {
$fileNameNew = "profile".$id.".".$fileActualExt;
$fileDestination = 'uploads/'.$fileNameNew;
if (move_uploaded_file($fileTmpName, $fileDestination)) {
$sql = "UPDATE profileimg SET status=0 WHERE userid='$id'";
$result = mysqli_query($conn, $sql);
header("Location: ../index.php?upload=success");
}
else {
header("Location: ../index.php?upload=failed");
}
}
else {
header("Location: ../index.php?upload=toobigfile");
}
}
else {
header("Location: ../index.php?upload=error");
}
}
else {
header("Location: ../index.php?upload=invalidtype");
}
}
答案 0 :(得分:1)
哇伙计们我刚发现问题...我不知道为什么这是问题,但在$ fileDestination ='uploads'。$ fileNameNew;我不得不把$ fileDestination ='../ uploads'。$ fileNameNew;
if ($fileSize < 500000) {
$fileNameNew = "profile".$id.".".$fileActualExt;
$fileDestination = '../uploads/'.$fileNameNew;
if (move_uploaded_file($fileTmpName, $fileDestination)) {
$sql = "UPDATE profileimg SET status=0 WHERE userid='$id'";
$result = mysqli_query($conn, $sql);
header("Location: ../index.php?upload=success");
}
else {
header("Location: ../index.php?upload=failed");
}
}