0

我编写了一个文件上传脚本,我想检查上传的文件是否是 PHP。

我想保护我的脚本,以便允许上传的唯一文件是 CSS 和 XML。

这是我的代码:

<form action="cp_home.php?mode=up_styles&type=uploading" method="post" enctype="multipart/form-data" name="form1" id="form1">
     <input class="fixed" name="ufile" type="file" id="ufile" size="35" />
     <input type="button" name="Submit" onclick="upload()" value="up style" />
</form>
4

5 回答 5

0

两种检查方式

1.你可以检查它javascript本身

function is_php(filename){
return filename.split('.').pop()=="php";
}

2.或者你可以简单地检查后端..例如,如果你使用php本身,那么使用下面的代码

$path_parts = pathinfo($filename);
if($path_parts['extension']!="php")
return false;
else 
return true;
于 2013-03-13T13:12:12.730 回答
0

您可以检查扩展名,因为 php 只会执行 php 扩展名文件。

$info = pathinfo(basename($_FILES['image']['name']));
$ext = strtolower($info['extension']);

if ($ext != 'php') {
    // process file upload
}

或者,如果您的服务器支持 php3 或 php5 文件扩展名,您可能想要使用

if (!preg_match('/^php/', $ext)) {
    // process file upload
}
于 2013-03-13T12:58:42.440 回答
0

在您的 php 代码中检查扩展名:

$allowedExts = array("css", "xml"); // css and xml are allowed here, if you want more add it here.
$extension = end(explode(".", $_FILES["file"]["name"]));

if(in_array($extension, $allowedExts)){

   // your code here

}
于 2013-03-13T12:56:48.217 回答
0
 $allowedExts = array("css", "xml");
        $extension = end(explode(".", $_FILES["file"]["name"]));

        if (in_array($extension, $allowedExts)) {

            if (move_uploaded_file($_FILES['file']["tmp_name"], PATH.$name)) {

                if (file_exists($name . $extension)) {
                    echo "uploaded";
                }
                else{
                    echo "not";
                }
            }
        }
于 2013-03-13T13:03:45.430 回答
-1
var x = "1.txt";
alert (x.substring(x.lastindexOf(".")+1));

在输入表单文件文本上使用它。

于 2013-03-13T12:58:33.410 回答