繁体   English   中英

Joomla 2.5:GD库-如何命名文件以避免冲突

[英]Joomla 2.5: GD Library - how to name the file to avoid conflict

我正在为Joomla 2.5编写一个组件,该组件使用PHP GD库根据用户输入生成图形。

我应该给图像文件起什么名字,以避免多个用户使用该组件时发生冲突。

您可以借助日期和PHP哈希函数生成随机名称: http : //www.php.net/manual/zh/function.hash.php

因此名称将是唯一的。

或者,取决于组件中使用的功能,您可以以某种方式将用户名添加到映像名称。 它取决于组件的功能和我的因素(如果每个用户或每个其他功能等只有一张图像,等等)

一月

我认为您有两种方法。 首先是使用这样的前缀保存图像

scotttiger-img12321323.jpg

其中scotttiger是用户名, 12321323是用户输入。 另一种方法是为每个用户使用不同的文件夹

scotttiger/1231321.jpg

但是,如果您没有用户登录并且不知道用户名,请使用isfile( http://it1.php.net/is_file )函数进行简单检查并设置增量名称。 例如:

$wrote = false;
$prog = 0;
$filename="img-{$user_input}-{$prog}.jpg";
while(isfile($filename)) {
   $prog++;
   $filename="img-{$user_input}-{$prog}.jpg";
}
write_file($filename);

因此,您第一次使用img-input-1.jpg,第二次使用img-input-2.jpg,依此类推。 使用此解决方案,您不会出现重复或冲突。

您可以使用以下解决方案提高性能:

$wrote = false;
$prog = md5(time());
$filename="img-{$user_input}-{$prog}.jpg";
while(isfile($filename)) {
   $prog = md5(time());
   $filename="img-{$user_input}-{$prog}.jpg";
}
write_file($filename);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM