【问题标题】:How to use random name for image file generated using ffmpeg-php?如何为使用 ffmpeg-php 生成的图像文件使用随机名称?
【发布时间】:2017-10-13 13:27:27
【问题描述】:

使用下面的代码可以正常生成图像

$thumbnail = 'images/thumbnail.jpg';

// shell command [highly simplified, please don't run it plain on your script!]

shell_exec("ffmpeg -i $video -deinterlace -an -ss 1 -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $thumbnail 2>&1");

但它会创建一个名为 thumbnail.jpg 的文件 我需要为生成的图像设置随机名称,以将其保存在图像文件夹和数据库中。如何在下面的代码中生成一个随机名称来缩略图 $thumbnail = 'images/thumbnail.jpg';

【问题讨论】:

  • 这个“随机名”有什么要求?如果您的意思是您想要 thumbnail1.jpg 之类的内容,那么您可以轻松查询存储 jpg 的表的行数,并在其中添加一个并将其附加到文件名的末尾。
  • @MichaelPlatt 我需要添加当前时间,随机数,应该是这样的。 this , $thumbnail = 'images/thumbnail+currentTime+randomnumber.jpg' .. 我是个初学者.. 所以请帮忙
  • 那么你如何创建另一个变量,将其命名为$thumbnail_output 并将值设置为thumbnail。创建另一个名为 date 的变量,如 $date = date('m/d/Y h:i:s a', time()); 并将两者粘贴在一起作为输出文件名?
  • 感谢您的帮助

标签: php image ffmpeg


【解决方案1】:

尝试以下方法:

$rand = rand(1,10000);
$uniqueName = uniqid($rand);
$thumbnail = "images/{$uniqueName}.jpg";

它将为缩略图创建一个唯一的名称。使用uniqid()rand()

【讨论】:

  • @rak007 正如答案所说,它不够随机,无法用于安全令牌。但这里不是这样。由于 OP 只想使用随机字符串作为文件名,它可以做得很好,尤其是在提供 prefix
  • @mega6382 谢谢你的回答,帮了我很多
【解决方案2】:

换行

$thumbnail = 'images/thumbnail.jpg';

$thumbnail = 'images/img'.rand(99,999999).'.jpg';

它将为图像创建一个随机名称。

【讨论】:

  • 如果我想保存 1000000 张图片怎么办?
  • 将 rand(99,999999) 更改为 rand(99,999999999)。 :)
  • 在 100 万张图像上,仍然有很大的机会遇到相同的兰特数两次 ...
  • $thumbnail = 'images/img'.time().rand(99,99999).'.jpg';时间功能将解决这个问题。没有机会在 1 秒内上传超过 100 万张图片。
  • 总有“那个人”,这就是你哈哈
【解决方案3】:

Random 永远不会承认以这种方式生成的每个文件名都是唯一的并且尚未使用。

我建议使用tempnam

这是一个例子:

$tmpfname = tempnam("/YOURDIR", "images");

【讨论】:

  • 感谢您的帮助
【解决方案4】:

因为你在评论中声明你需要你的文件名看起来像

$thumbnail = 'images/thumbnail+currentTime+randomnumber.jpg'

这是执行此操作的代码:

$thumbnail = 'images/thumbnail' . time() . rand(1,9) . '.jpg';

我建议您编辑您的帖子并粘贴这些要求,以便其他用户可以轻松找到它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多