将图像复制到另一个文件夹并重命名

时间:2016-05-12 19:30:02

标签: php mysql

我有以下问题。我写了这段代码:

$select = $db->query("SELECT * FROM users WHERE email='".$email."'");
$select = $select->fetch_object();

if(!empty($select->profile_picture)){
    chmod($randomImage, 0777);
    chmod($imagesDir2, 0777);
    $new_name = pathinfo($randomImage);
    copy($randomImage,$imagesDir2.$new_name['basename']);
    $new_file = md5(mt_rand()).$new_name['basename'];
    chmod ($imagesDir2.$new_name['basename'], 0777);
    rename($imagesDir2.$new_name['basename'],$imagesDir2.$new_file);
    chmod('../gender/male/' . $new_name['basename'], 0777);
    unlink('../gender/male/' . $new_name['basename']);
    $db->query("UPDATE users SET profile_picture='".$new_file."' WHERE email='".$email."'");
}

使用查询后,完整路径将插入数据库表中。

在查询之后,我写了这段代码:

  it 'contains Delete link' do
    expect(page).to have_link('Delete', admin_disease_path(disease))
  end

我无法让它发挥作用。我想要它做什么,

  1. 将图像复制到上传文件夹
  2. 在图像名称前使用md5(mt_rand())重命名uploads文件夹中的图像(例如md5(mt_rand())1.jpg)
  3. 在数据库中更新此内容
  4. 取消链接/销毁原来的' ../ gender / male /'夹
  5. 唯一不起作用的是取消链接。文件仍在文件夹中。

    我希望有人可以帮助我。对于那些让efford帮忙的人,我想事先感谢你。

1 个答案:

答案 0 :(得分:0)

首先,我要感谢自己的帮助。其次,对于那些陷入类似问题的未来读者而言。我将if语句更改为:

if(!empty($select->profile_picture)){
    chmod($imagesDir2, 0777);
    $new_name = pathinfo($randomImage);
    copy($randomImage,$imagesDir2.$new_name['basename']);
    $new_file = md5(mt_rand()).$new_name['basename'];
    chmod ($imagesDir2.$new_name['basename'], 0777);
    rename($imagesDir2.$new_name['basename'],$imagesDir2.$new_file);
    chmod($imagesDir.$new_name['basename'], 0777);
    unlink($imagesDir.$new_name['basename']);
    $db->query("UPDATE users SET profile_picture='".$new_file."' WHERE email='".$email."'");
}

它有效。确保您拥有正确的权限设置。我希望它可以帮助您解决问题。