【问题标题】:Get image from DB, rename the image on server and save new image name in DB with PHP从数据库中获取图像,在服务器上重命名图像并使用 PHP 在数据库中保存新的图像名称
【发布时间】:2016-12-17 08:28:41
【问题描述】:

我将图像名称存储在数据库中,图像存储在服务器上。我现在需要做的是,获取图像并用新名称重命名图像,在这种情况下,新名称与数据库中的 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 变量中生成的新图像名称重命名服务器上的旧图像。

如有任何帮助,我们将不胜感激。

欢呼

【问题讨论】:

    标签: php linux image file


    【解决方案1】:

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

    在你的情况下,函数应该返回 false,所以如果有什么不工作,请检查函数的结果值,并检查what it means

    您可能正在寻找rename,它链接自有关move_uploaded_file 的页面,它还可以将文件“重命名”(移动)到不同的文件夹甚至不同的分区。

    【讨论】:

      【解决方案2】:

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

      <?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);
      
      }
      

      ?>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-05
        • 2020-04-27
        • 1970-01-01
        • 2023-04-05
        • 2012-07-05
        • 2013-04-26
        • 1970-01-01
        相关资源
        最近更新 更多