Dosyaları ile sorun mekanlarda ve tek tırnak oluşur?

1 Cevap php

Ffmpeg kullanarak küçük oluşturmak için aşağıdaki kodu I'using ama o boşluk veya herhangi bir tırnak hiç sahip dosyalar için para cezası çalışıyordu ..

Ancak dosya ('sachin knock.flv' gibi) boşluk veya (sachin's_double_cent. Mp4 gibi) tırnak sahip dosyaları sahip olduğunda çalışmaz ..

Ne ben bu dosyaları doğru işe almak için ne yapabilirim? Bir kısıtlama bazı götürü olarak ben dosyaları yeniden adlandırmak değil ki ..

Benim kod

<?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');    
    }
?>

1 Cevap

Dosyaları kullanıcılar tarafından sağlanan eğer, sizin kod çalışmak, ancak kod enjeksiyon geniş açık vermez sadece unutmayın.

Bu escapeshellcmd() kullanılarak çözülebilir.