检索在名称中使用time()上传的图像

时间:2014-05-17 11:35:01

标签: php mysqli

我是PHP编程的新手。我使用特定的上传路径和time()上传图片,以便新文件不会覆盖具有相同名称的旧文件。

$target = EHS_UPLOADPATH . time() . $picture;

if(move_uploaded_file($_FILES['picture']['tmp_name'], $target))

然后是剩下的代码。

这部分运作良好,完全没有问题。我遇到的问题是检索该图片作为个人资料的一部分显示。这是我尝试使用的代码行:

echo '<img src="' . EHS_UPLOADPATH . time() . $row['picture'] . '" alt="Band Member Picture"/>';

主要问题是当运行这行代码时,服务器输入当前时间而不是文件上传的时间;因此,无法检索和显示图片。那么检索具有time()作为其名称一部分的图片的最佳方法是什么?

我在本网站上检查了可能的解决方案,但没有找到解决方案。任何帮助将不胜感激。非常感谢!

2 个答案:

答案 0 :(得分:0)

您需要在DB中保留时间()。如果将图像保存到DB。如果不使用DB,请参阅下面的评论。

$time = time();

$target = EHS_UPLOADPATH . $time . $picture;

  1. 使用图像向DB写入时间。

  2. 从带图像的DB加载时间

  3. echo '<img src="' . EHS_UPLOADPATH . $row['time'] . $row['picture'] . '" alt="Band Member Picture"/>';

答案 1 :(得分:0)

试试这个

$picName = time() . $picture ;
$target = EHS_UPLOADPATH . $picName;
if(move_uploaded_file($_FILES['picture']['tmp_name'], $target))
echo '<img src="' . EHS_UPLOADPATH . $row['picture'] . '" alt="Band Member Picture"/>';

$row['picture']应包含$picName,这意味着您应将$picName存储在数据库表的图片列中

另外我认为你对时间功能的理解是错误的。即使您在同一页面中调用它,也不能指望time()返回相同的数字,我假设您在移动图像之后将进行数据库操作并在显示页面中显示之前进行选择,您永远不会期望{{ 1}}是相同的。最好的方法是将time()存储在一个变量中,并按照上面提到的方式进行尝试。