PHP图片上传和命名失败
问题描述:
我有一个小表单来添加类别。我的表中的字段有以下几种:PHP图片上传和命名失败
名称要求
说明不要求
照片不要求
这将创建与所有类别信息,它会ev将图像名称插入数据库中。
我遇到的问题是它不会将图像移动到上传文件夹。 此外,它将重命名图像如下:如果图像名称是avatar.jpg它将重命名它85789avatar.jpg在数据库字段中。
我需要它来重命名图像如下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");
答
它不会将图像的上传文件夹还它,如下所示,将重命名的图像。如果映像名称是avatar.jpg TI将在数据库领域85789avatar.jpg其重命名为
move_uploaded_file()有两个参数,而不是三个。更新此行:
move_uploaded_file($file_loc, $folder, $file);
对此(追加文件名的文件夹):
move_uploaded_file($file_loc, $folder . $file);
的最后一个问题是图像不是必需的,如果你让它空白仍将89439号码放入数据库字段中。
因为move_uploaded_file()回报boolean,代码可以被更新,以仅当文件被上传成功插入一条记录。
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();
}
“_it仍然把89439号在数据库field._” 的数据库字段? –
照片字段 – Case
这是否意味着一个值为_89439_或89439记录的记录? –