php - 如何在上传过程中重命名图像文件

标签 php jquery mysql ajax pdo

我想做的是重命名图像的文件名,然后将文件移动到上传文件夹并将链接保存到数据库。

我的问题是在我当前的代码中,文件移动到上传文件夹后,文件的原始名称仍然保留,甚至在将链接保存到数据库时,原始图像名称仍然保留。

如何在图像文件移动到上传文件夹之前以及链接保存到数据库之前重命名图像文件的原始名称?

示例:原始名称Oppa/upload/default.png

我想重命名它Oppa/upload/1.png

PHP 代码:

<?php
include_once('../dbc/database.php');

$db = new Connection();
$db = $db->dbConnect();
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$imageLink = isset($_POST['imageLink']) ? $_POST['imageLink'] : "";

$email = isset($_POST['email']) ? $_POST['email'] : "";

$image = addslashes(file_get_contents($_FILES['imageInput']['tmp_name']));
$image_name = addslashes($_FILES['imageInput']['name']);
$image_size = getimagesize($_FILES['imageInput']['tmp_name']);

move_uploaded_file($_FILES["imageInput"]["tmp_name"], "../upload/" . $_FILES["imageInput"]["name"]);
$location = "Oppa/upload/" . $_FILES["imageInput"]["name"];


if(!empty($_POST['imageLink'])) {

        $q = "UPDATE tbl_user SET user_image = '$location' WHERE user_email= :email ";
        $query = $db->prepare($q);
        $query->bindParam(':email', $email);
        $results = $query->execute();
        echo "1";
}

?>

最佳答案

尝试如下:

$type = $_FILES["imageInput"]["type"];
$ext = end(explode('/', $type));
$filename = uniqid() . '.' . $ext; // you can set name here whatever you want
move_uploaded_file($_FILES["imageInput"]["tmp_name"], "../upload/" . $filename);
$location = "Oppa/upload/" . $filename;

关于php - 如何在上传过程中重命名图像文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24839768/

相关文章:

php - 在 Laravel 4.2 中,我无法使用 bootstrap 设置下拉菜单的样式 - 而是获取默认样式

php - 从内部引号或heredoc输出php和javascript时出错

android - 用户更改方向后,网站无法正确显示全屏背景

jQuery 正则表达式,文件名中允许多个点

mysql - 从现在开始的日期范围查询

php - xajax扩展列表查询

php - 登录只是刷新页面 php html

javascript - 单击 a href 时 Jquery Ajax 调用将数据发送到方法

C# xamarin android 无法连接到任何指定的 MySQL 主机

php - 您的 SQL 语法有误