从DB获取图像,重命名服务器上的图像并使用PHP在DB中保存新图像名称

时间:2016-12-17 08:28:42

标签: php linux image file

我将图像名称存储在数据库中,图像存储在服务器上。我现在需要做的是,获取图像并使用新名称重命名图像,在这种情况下,该名称与数据库中的ID相同。

这是我目前的代码。

<?php

//open the database 
include '../db/dbc.php';

$getimage = mysql_query("SELECT id, profile_image_url FROM users WHERE profile_image_url !='' ");

while($image = mysql_fetch_array($getimage)) {

    //complete image name to the original image 
    $imgdir = "../images/profile/".$image['profile_image_url']; //path where image is + image name 


    $imagename = $image['profile_image_url']; //image name old EXAMPLE: 7823jhasjda6732iojhaksd.jpg
    $id = $image['id']; //id of the user


    $temp = explode(".", $imagename);
    $newfilename = $id . '.' . end($temp); // new image name with id EXAMPLE: 1023.jpg



    move_uploaded_file($imgdir,"../images/profile/".$newfilename);

}


?>

所以我设法获取图像,并创建一个工作正常的新名称,但move_uploaded_file由于某种原因不起作用。 我现在需要做的是使用$ newfile varialble中生成的新图像名称重命名服务器上的旧图像。

任何帮助都会得到满足。

Cheerz

2 个答案:

答案 0 :(得分:1)

move_uploaded_file用于将上传的文件从临时上传位置移动到其最终目的地。虽然您的图像可能已经在某个时候上传,但它不再是这样计算的。该函数要求第一个参数只是一个文件名,并在该上传文件夹中查找它。

在你的情况下,函数应该返回false,所以如果某些东西不起作用,请检查函数的结果值,并检查what it means

您可能正在寻找rename,该https://jsfiddle.net/309zewwd/链接自move_uploaded_file页面,并且还可以重命名&#39; (移动)文件到不同的文件夹甚至是不同的分区。

答案 1 :(得分:0)

我使用重命名是。这是我的最终解决方案。

<?php

//open the database 
include '../db/dbc.php';

$getimage = mysql_query("SELECT id, profile_image_url FROM users WHERE profile_image_url !='' ");

while($image = mysql_fetch_array($getimage)) {

    //complete image name to the original image 
    $imgdir = "../images/profile/".$image['profile_image_url']; //path where image is + image name 


    $imagename = $image['profile_image_url']; //image name old EXAMPLE: 7823jhasjda6732iojhaksd.jpg
    $id = $image['id']; //id of the user


    $temp = explode(".", $imagename);
    $newfilename = $id . '.' . end($temp); // new image name with id EXAMPLE: 1023.jpg

    $newdir = "../images/profile/".$newfilename;


    rename($imgdir,$newdir);

}

&GT;