0

ファイルをアップロードするためのコードを作成し、特定の制限も適用しました。しかし、今、任意の viedo をアップロードしようとすると、エラーは表示されず、空白の画面が表示されるだけです。画像用に書きましたが、他の人に何を書こうか迷っています。私のコードは次のとおりです

 <?php
session_start();
define ("MAX_SIZE","4000"); 
define ("WIDTH","750"); 
define ("HEIGHT","563");

   function getExtension($str) 
{
    $i = strrpos($str,".");
    if (!$i) 
    {
         return "";
     }
    $l = strlen($str) - $i;
    $ext = substr($str,$i+1,$l);
    return $ext;
}

$errors=0;



        if(isset($_POST['Upload']))
        {

    $image=$_FILES['image']['name'];


    if ($image) 
    {
        $filename = stripslashes($_FILES['image']['name']);

        $extension = getExtension($filename);
        $extension = strtolower($extension);
            $size=getimagesize($_FILES['image']['tmp_name']);
            $sizekb=filesize($_FILES['image']['tmp_name']);

            if ($sizekb > MAX_SIZE*1024)
            {
                echo '<h1>You have exceeded the size limit!</h1>';
                $errors=1;
            }

            $image_n=time();
            $image_name=$image_n.'.'.$extension;
            //$image_name1="vimal".$extension;
            echo "<br> Image  Name " . $image_name;
            echo "<br> " . $_SESSION['Id'];
            $newname=$_SESSION['Id'] ."/upload/".$image_name;
            $copied = copy($_FILES['image']['tmp_name'], $newname);
            //$copied1 = copy($_FILES['image']['tmp_name'], $image_name1);


        if (!$copied) 
        {
            echo '<h1>Copy unsuccessfull!</h1>';
            $errors=1;
        }
        else
        {
                echo "Your databaase Insert Code Here";
            include ("config.php");

            $st = "insert into file_master values('".$_SESSION['Id'].$image_n ."','" . $extension . "','".$image_name."','".$_SESSION['Id'] ."/upload/".$image_name. "','".$_SESSION['Id']."','N')" ;
            echo "<br>". $st;
            try
            {
                mysql_query($st);
            }
            catch(Exception $e)
            {
                    echo $e->getMessage();
            }
}
    }   
        }
    }   

}
4

1 に答える 1

0

これは答えではありませんが、コードとそのコーディング方法に関連する多くの便利なテクニックを共有したいと思います.

ファイルの拡張子を取得する

$extension = end(explode('.', basename($completepath)));

複雑な指示を使用してチェックする代わりに、ファイルの名前 (ベース名) を取得してから、ピリオドで展開し、生成された配列の最後の項目を取得します...

ファイルが正しくアップロードされたかどうかの確認

if(is_file_uploaded($_FILES['nameofinput']['tmp_name'])){

これは、ファイルが実際に存在するかどうかを確認するために、標準の安全な方法を使用します。使用する必要がある他の関数は

move_uploaded_file($_FILES['nameofinput']['tmp_name'], $targetfilename);

これにより、通常はアクセスできるはずのファイルのみを移動しようとすることが保証され、入力データを微調整してシステムから悪用しようとするハッカーに対して効果的であることが証明されます。

于 2012-11-19T03:30:19.713 に答える