簡體   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