PHP实现文件上传功能

注意:服务器中php.ini文件特征属性

我们需要手动在服务器端的 php.ini 中设置对表单传递的数据进一步判断
file_uploads = On /Off 是否允许文件上传
upload_max_filesize = 2M 上传的文件的最大大小
post_max_size = 8M   POST 数据所允许的最大大小
表单传递的数据,文件只是其中的一部分,所以设置时, upload_max_filesize 应该小于 post_max_size。


PHP实现文件上传说明:

1.html中编写表单。

2.php服务器端脚本。


1.上传文件.html实现

<form method="post" action="serverUpLoads.php" enctype="multipart/form-data">
    <!--enctype="multipart/form-data"这样服务器就会知道,我们要传递一个文件,
<!--这样服务器可以知道上载的文件带有常规的表单信息。-->
<!--表单默认使用application/x-www-form-urlencoded来提交数据。-->
<input type="file" name="file"/>
<input type="submit" value="上传"/>
<!--服务器端的$_FILES[][]的第一个中括号值要与类型为filename="file"的值保持一致-->
 </form>

2.serverUpLoads.php服务器端脚本

header("Content-type:text/html;charset=utf-8");
//允许上传的文件后缀类型
$allowExts = array("gif", "jpeg", "jpg", "png");

//文件的名称
//echo "文件的全名称:" . $_FILES["file"]["name"] . "<br>";
//取出文件名和后缀名
$temp = explode(".", $_FILES["file"]["name"]);

分离出来的文件名,后缀名以数组形式存储
//print_r($temp);
Array ( [0] => html5_新媒体娱乐 [1] => css )
文件名
//echo "<br>文件名:" . $temp[0] . "<br>";
后缀名
//echo "后缀名:" . $temp[1] . "<br>";
得到文件后缀名
echo "后缀名:" . end($temp) . "<br>";
//
文件类型(辨别上传文件格式真实格式,编程语言规定的一定的格式,
例如:上传css类型的文件,$_FILES["file"]["type"]就会显示编程辨认的为text/css的全称)
//echo "文件类型:" . $_FILES["file"]["type"];

if (($_FILES["file"]["type"] == "image/gif" || 
$_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/jpg"
 || $_FILES["file"]["type"] == "image/png") && (in_array(end($temp), $allowExts)) 
&& $_FILES["file"]["size"] < (1024 * 1024)) {
    if ($_FILES["file"]["error"]) {
        echo "报错:" . $_FILES["file"]["error"];
    } else {
        if (!is_dir("uploadFiles/")) {
            mkdir("uploadFiles/");
        }

        if (file_exists("uploadFiles/" . $_FILES["file"]["name"])) {
            echo "文件已存在";
        } else {
            move_uploaded_file($_FILES["file"]["tmp_name"], 
                        "uploadFiles/" . $_FILES["file"]["name"]);
            echo "文件已上传";
        }
    }

}
//else {
//echo "不在规定范围之内中的一种或都有:1.文件类型是否图片的(image/*.//2.是否在规定类型之内后缀
//3.文件大小";
//}

补充:

1.上传后做的处理:

   move_uploaded_file($_FILES["file"]["tmp_name"], 
              "uploadFiles/" . $_FILES["file"]["name"]);

move_uploaded_file(临时路径/临时文件名,目的路径/目的文件名)函数将存放在临时目录下的上传文件拷贝出来,存放到指定目录的指定文件名,如果目标存在将会被覆盖。

Ø 上传的文件被放置到服务器端临时目录: / tmp 目录里面命名为一个唯一的,随机生成的临时文件名(
$_FILES["file"]["tmp_name"]//随机生成的临时文件名
)。
注:该文件在程序执行完后将自动被删除掉。在删除前可以像本地文件一样操作。
Ø / tmp 目录是默认的上传临时文件存放地点,
如果需要更改这个目录:可以编辑
php.ini 文件 File Uploads 段的 upload_tmp_dir   属性值。


下边链接为超级全局数组$_FILES的详细讲解。

http://blog.csdn.net/u013005050/article/details/51945397








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值