就是在php上传中防止用欺骗的手段上传,本来允许上传文件的格式是 “jpg”,例如把“txt的文件”后缀改为jpg
它也可以上传的。怎么样可以防止,希望给出代码。
我用的上传方式很简单的哪一种一下是我用的代码看看怎么改:
<?php
header("Content-type:text/html;Charset=utf-8");
$uploaddir = dirname(__FILE__)."\\upload\\"; //dirname获得当前文件的路径
$uploadfile = $uploaddir.time().basename($_FILES['upfile']['name']);
$type= $_FILES['upfile']['type'];if(preg_match("/\\.(jpg|gif|png|bmp|jpeg)$/i",$uploadfile)){
if($_FILES["upfile"]["size"]<1000000){
if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
if(move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile)){
echo "上传成功";
}
else{
echo "上传失败";
}
}
}
它也可以上传的。怎么样可以防止,希望给出代码。
我用的上传方式很简单的哪一种一下是我用的代码看看怎么改:
<?php
header("Content-type:text/html;Charset=utf-8");
$uploaddir = dirname(__FILE__)."\\upload\\"; //dirname获得当前文件的路径
$uploadfile = $uploaddir.time().basename($_FILES['upfile']['name']);
$type= $_FILES['upfile']['type'];if(preg_match("/\\.(jpg|gif|png|bmp|jpeg)$/i",$uploadfile)){
if($_FILES["upfile"]["size"]<1000000){
if(is_uploaded_file($_FILES['upfile']['tmp_name'])){
if(move_uploaded_file($_FILES['upfile']['tmp_name'],$uploadfile)){
echo "上传成功";
}
else{
echo "上传失败";
}
}
}
/* 图片上传类 仅限JPG格式图片 */
class uploadFile
{
var $inputName; //input名称
var $fileName; //文件命名
var $fileProperty; //文件属性
var $fileSize=2097152; //文件大小限制,2M
var $filePath="upload/"; //文件存储路径
function uploadFile($inputName){
$this->inputName=$inputName;
$this->getName(); //取得新的名称
$this->fileSave();
}
//随机名称
private function getName(){
$this->fileName=date("YmdHms").rand(0,9).$this->getProperty();
}
//文件属性,返回后辍名
private function getProperty(){
if($_FILES[$this->inputName]["type"]=="image/pjpeg"||$_FILES[$this->inputName]["type"]=="image/jpeg"){
return ".jpg";
}else{
exit("文件格式不对");
}
}
//文件存储
private function fileSave(){
if($_FILES[$this->inputName]["size"]>$this->fileSize){
exit("文件太大,最大限制为".$this->fileSize."字节");
}
if(!file_exists($this->filePath)){
mkdir($this->filePath); //如果文件存储目录不存在,则建立;
}
move_uploaded_file($_FILES[$this->inputName]["tmp_name"],
$this->filePath.$this->fileName);
}
}
if($_GET['action']=="fileSave"){
$f=new uploadFile("file");
echo '<input name="textfield" type="text" size="30" value="'.$f->filePath.$f->fileName.'" /> 上传成功! <a href="'.$f->filePath.$f->fileName.'">浏览</a>';
}else{
echo '<form action="?action=fileSave" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="file" name="file" size="30" />
<input type="submit" name="Submit" value="提交" />
</form>';
}
?>
这个你试一下,是从网上看到的。
exit("上传的文件不是图片!");
}