0

我已经编写了用于上传任何文件的代码,并且还应用了某些限制。但是现在当我尝试上传任何视频时,它没有显示任何错误,它只是显示一个空白屏幕。我已经为图像写了它。我对为别人写什么感到困惑。我的代码如下

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

无需使用复杂的指令进行检查,只需获取文件名(basename),然后在句点上展开并获取生成数组的最后一项......

检查文件是否正确上传

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

这将使用标准的安全方法来检查文件是否真实存在。您应该使用的另一个功能是

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

这将确保您只尝试移动您应该可以正常访问的文件,并且将证明对试图通过调整输入数据从您的系统中滥用的黑客来说是有效的。

于 2012-11-19T03:30:19.713 回答