php - 文件问题由空格和单引号组成?

标签 php file ffmpeg

我使用以下代码使用 ffmpeg 创建缩略图,但它对于没有空格或任何引号的文件工作正常。

但是当文件有空格(如 'sachin knock.flv')或文件有引号(如 sachin's_double_cent.mp4)时,它不起作用..

我该怎么做才能让这些文件准确工作?一个限制是我不能重命名文件,因为它们是 block 状的。

我的代码是

<?php
    error_reporting(E_ALL);
    extension_loaded('ffmpeg') or die('Error in loading ffmpeg');
    $link = mysql_connect('localhost', 'root', '');
    if (!$link) {
        die('Not connected : ' . mysql_error());
    }
    $db_selected = mysql_select_db('db', $link);

    $max_width  = 120;
    $max_height = 72;
    $path ="/home/rootuser/public_html/temp/";
    $qry="select id, input_file, output_file from videos where thumbnail='' or thumbnail is null;";
    $res=mysql_query($qry);
    while($row = mysql_fetch_array($res,MYSQL_ASSOC))
    {
        $orig_str = array(" ");
        $rep_str  = array("\ ");
        $outfile  = $row[output_file];
//      $infile   = $row[input_file];
        $infile1  = str_replace($orig_str, $rep_str, $outfile);

        $tmp      = explode(".",$infile1);
        $tmp_name = $tmp[0];
        $imgname  = $tmp_name.".png";
        $srcfile  = "/home/rootuser/public_html/uploaded_vids/".$outfile;
            echo exec("ffmpeg -i ".$srcfile." -r 1 -ss 00:00:05 -f image2 -s 120x72 ".$path.$imgname);
        $nname = "./temp/".$imgname;
        $fileo = fopen($nname,"rb");
        if($fileo)
        {
        $imgData = addslashes(file_get_contents($nname));
        echo $imgdata;
        $qryy="update videos set thumbnail='{$imgData}' where input_file='$outfile'"; 
        $ress=mysql_query($qryy);
        }
        else
            echo "Could not open<br><br>";
        unlink('$nname');    
    }
?>

最佳答案

请注意,如果文件是由用户提供的,您的代码不仅不起作用,而且对代码注入(inject)开放。

这可以通过使用 escapeshellcmd() 来解决.

关于php - 文件问题由空格和单引号组成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2491135/

相关文章:

python - Tkinter GUI 将固定宽度文件转换为分隔文件

Windows BAT : test if a specific file is empty

video - 使用 ffmpeg 从图像和 MP3 文件创建 iPhone 兼容视频

javascript - Codeigniter 内容每 X 秒获取一次

java - PHP DateTime到Java Date

php - Preg 匹配 php 中 html 标签之间的文本

Android应用程序无法读取外部存储文件

c++ - 初始化用于使用 FFmpeg 混合 mkv 的输出文件

ffmpeg - mencoder、VLC 和 FFMpeg 中使用的 Mjpeg 编解码器的文档在哪里?

javascript - <tr> 动态表中的下拉问题。网页/PHP