使用mysql上的名称将文件从文件夹移动到另一个文件夹

时间:2013-01-25 03:25:19

标签: php

大家好我有一个网站,我的数据库上有5万张图片所有图片名称都是Party_Id我有这样的东西

Picture_Id   |  Party_Id    |  Picture_Name
1            |  1           |  1aaaa.jpg
2            |  1           |  2aaaa.jpg
3            |  2           |  3aaaa.jpg
4            |  2           |  4aaaa.jpg

网站创建时的问题是他们把所有图片保存在同一个文件夹上,现在当你需要操作任何东西或访问文件夹真的很疯狂时,ftp无法显示这么多文件。

所以我的想法就像为每个参与方ID创建一个文件夹,例如1,2,3

然后如果可能检查数据库,请选择所有图片,其中party id = 1并在文件夹1中移动,那么我可以逐个进行,然后删除或只保留原始文件夹。

我不知道该怎么做,我真的很赞赏任何帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

据我所知,你有一个派对ID,每个派对都有一些图片。因此,在数据库中插入Party Details,您将使用last_insert_id()获取生成的一方的ID。

现在,通过这种方式,你可以正常上传图片:

$target_path = "img/" . mysqli_insert_id();

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

那么,你觉得这对你的案子来说是正确的方法吗?您现在将以这种方式获得目录结构:

img/
    1/
        photo_a_1.jpg
        photo_a_2.jpg
        photo_a_3.jpg
        photo_a_4.jpg
    2/
        bro_wedding_1.jpg
        bro_wedding_2.jpg
        bro_wedding_3.jpg
    3/
        birthday_1.jpg
        birthday_2.jpg
        birthday_3.jpg
        birthday_4.jpg
        birthday_5.jpg

现在你可以这样使用:

<img src="img/$partyId/$fileIndex" />

答案 1 :(得分:0)

我确实喜欢这个并且工作,也许不是最好的解决方案但是做了工作

  $Sql = "SELECT * FROM tabpartys WHERE Party_Id = '232'";
  $Query = mysql_query($Sql, $Conn) or die (mysql_error($Conn));
  while($Rs = mysql_fetch_array($Query)){
  // Identify directories
  $source = "../img/Fotos/".$Rs["Photo_Name"];
  $destination = "../img/Fotos/232/".$Rs["Photo_Name"];
  copy($source, $destination);
  }