Php图像上载和命名失败
我有一个小表单来添加类别。我的表格字段如下所示: 名称必填项 说明不需要 照片不需要 它将创建一个包含所有信息的类别,甚至将在数据库中插入图像名称 我遇到的问题是它不会将图像移动到uploads文件夹。 此外,它将按照如下方式重命名图像:如果图像名称为avatar.jpg,它将在数据库字段中将其重命名为85789avatar.jpgPhp图像上载和命名失败,php,file-upload,Php,File Upload,我有一个小表单来添加类别。我的表格字段如下所示: 名称必填项 说明不需要 照片不需要 它将创建一个包含所有信息的类别,甚至将在数据库中插入图像名称 我遇到的问题是它不会将图像移动到uploads文件夹。 此外,它将按照如下方式重命名图像:如果图像名称为avatar.jpg,它将在数据库字段中将其重命名为85789avatar.jpg if (isset($_POST['submit'])) { $Name = $_POST['name']; $Descrip
if (isset($_POST['submit'])) {
$Name = $_POST['name'];
$Description = $_POST['description'];
if (empty($Name)) {
$errors[] = "Name Required.";
}
if (!empty($errors)) {
echo validation_errors($errors[0]);
} else {
$file = rand(1000, 100000). $_FILES['photo']['name'];
$file_loc = $_FILES['photo']['tmp_name'];
$file_size = $_FILES['photo']['size'];
$folder = "uploads/";
if (($file_size > 2097152)) {
echo validation_errors("Your avatar exceeds file size");
} else {
move_uploaded_file($file_loc, $folder, $file);
$db = dbconnect();
$stmt = $db->prepare("INSERT INTO discussion_categories(Name, Description, Photo) VALUES (?,?,?)");
$stmt->bind_param('sss', $Name, $Description, $file);
$stmt->execute();
$stmt->close();
header("Location: managecategories.php");
我需要它将图像重命名为O1CCJDSXBOM2.jpg,如下所示
最后一个问题是图像不是必需的,如果您将其留空,它仍然会在数据库字段中输入89439个数字
if (isset($_POST['submit'])) {
$Name = $_POST['name'];
$Description = $_POST['description'];
if (empty($Name)) {
$errors[] = "Name Required.";
}
if (!empty($errors)) {
echo validation_errors($errors[0]);
} else {
$file = rand(1000, 100000). $_FILES['photo']['name'];
$file_loc = $_FILES['photo']['tmp_name'];
$file_size = $_FILES['photo']['size'];
$folder = "uploads/";
if (($file_size > 2097152)) {
echo validation_errors("Your avatar exceeds file size");
} else {
move_uploaded_file($file_loc, $folder, $file);
$db = dbconnect();
$stmt = $db->prepare("INSERT INTO discussion_categories(Name, Description, Photo) VALUES (?,?,?)");
$stmt->bind_param('sss', $Name, $Description, $file);
$stmt->execute();
$stmt->close();
header("Location: managecategories.php");
它不会将图像移动到uploads文件夹,还会按如下方式重命名图像。如果图像名称为avatar.jpg,ti将在数据库字段中将其重命名为85789avatar.jpg
接受两个参数,而不是三个。更新此行:
move_uploaded_file($file_loc, $folder, $file);
为此(要将文件名附加到文件夹):
最后一个问题是图像不是必需的,如果您将其留空,它仍然会在数据库字段中输入89439个数字
if (isset($_POST['submit'])) {
$Name = $_POST['name'];
$Description = $_POST['description'];
if (empty($Name)) {
$errors[] = "Name Required.";
}
if (!empty($errors)) {
echo validation_errors($errors[0]);
} else {
$file = rand(1000, 100000). $_FILES['photo']['name'];
$file_loc = $_FILES['photo']['tmp_name'];
$file_size = $_FILES['photo']['size'];
$folder = "uploads/";
if (($file_size > 2097152)) {
echo validation_errors("Your avatar exceeds file size");
} else {
move_uploaded_file($file_loc, $folder, $file);
$db = dbconnect();
$stmt = $db->prepare("INSERT INTO discussion_categories(Name, Description, Photo) VALUES (?,?,?)");
$stmt->bind_param('sss', $Name, $Description, $file);
$stmt->execute();
$stmt->close();
header("Location: managecategories.php");
因为返回一个,所以只有成功上载文件时,才能更新代码以插入记录
if (move_uploaded_file($file_loc, $folder . $file)) {
$db = dbconnect();
$stmt = $db->prepare("INSERT INTO discussion_categories(Name, Description, Photo) VALUES (?,?,?)");
$stmt->bind_param('sss', $Name, $Description, $file);
$stmt->execute();
$stmt->close();
}
它没有改变我编辑的任何内容,因为你建议它仍然不会上载文件,最后一部分如果上载你的代码不允许任何字段添加数据,你确定用户php正在以有权限写入该上载目录的方式运行吗?我刚试着下载了一个脚本,它会将图像移动到文件夹中。。所以权限是好的,代码中有些错误。在调用move\u uploaded\u file()之前,是否检查
$\u FILES['photo']['error']
的值?查看它有什么值,并交叉检查“它仍然将89439个数字放入数据库字段”上的值。哪个数据库字段?照片字段这是指一条值为89439的记录,还是89439条记录?