简单php文件上传详细说明
关于文件上传我们讲了很多,这只是一款最基本的简单的文件上传功能,同时本教程也介绍了关于上传的原理以及各种函数的使用与file的参数说明,以及php.ihi设置上传文件大小配置等.
1 如果实现小文件的上传(2mb)一下是不需要对php教程.ini 中的配置进行修改的,如果要是大文件的上传就必须进行配置的修改.
2 修改php.ini 中的内容有:
post_max_size 指php通过表单post所能接收的最大值
upload_max_filesize 指允许上传文件的最大值
3 上传表单的设置,代码如下:
- <form method=”post” action=”” enctype=”multipart/form-data”>
- <input name=”upfile” type=”file”>
- <input type=”hidden” name=”max_file_size” value=”1024000”>
- </form>
解释:1首先上传时entype属性必须设为multipart/form-data,2 表单中最好加上 hidden隐藏域 name值为max_file_size,该隐藏域的作用不是真正去限制上传文件大小的,而是为了避免用户误传大文件而陷入无尽的等待中,真正限制大小的还是刚才php.ini 中的两个修改项.
4 预定义变量$_files
首先他是一个二维的数组.
$_files[‘upfile’][‘name’] 上传文件的文件名
$_files[‘upfile’][‘size’] 上传文件的大小
$_files[‘upfile’][‘tmp_name’] 文件上传时,文件首先被保存为临时文件,改文件是临时文件名.
$_files[‘upfile’][‘type’] 上传文件的类型
$_files[‘upfile’][‘error’] 错误代码
注意 $_files[‘upfile’][‘name’] 这里的upfile 是与表单<input name=”upfile” type=”file”> 的name对应,千万别错.
5 具体实现,php实例代码如下:
- <?php
- $filename=$_files['upfile']['name'];
- $tmp=$_files['upfile']['tmp_name'];
- $error=$_files['upfile']['error'];
- $path="./images/";
- if($error==0){
- if(is_uploaded_file($tmp)){//开源代码phpfensi.com
- if(move_uploaded_file($tmp,$path.$filename)){
- echo "上传成功!";
- }else{
- echo "<script> alert('文件不合法');history.go(-1);</script>";
- }
- }else{
- echo "<script> alert('非法操作!');history.go(-1);</script>";
- }
- }else{
- echo"<script> alert('上传错误,错误类型:".$error."');history.go(-1);</script>";
- }
- ?>