文件上传 (2)

文件上传

 

经常用于:

1,  对于发表内容或贴子时的一个附件

2,  资料共享的一个附件,文件

3,  头像上传时的一个文件上传

 

就是把客户本地的文件上传到服务器上去,客户可以直接在网页中查看或下载

 

 

 

写表单:

       第一个注意项:上传的时候方法必须要为post方法

       第二个注意项:修改enctype

       第三项:为了防止用户传过大的文件,我们通常会写上一个隐藏表单,MAX_FILE_SIZE,将其值设为value=”byte单位的值”,防止用户等待时间过长。这一项,现在无效。【臭臭】

      

 

我们一起在实验的时候,我们发现了这样一个特点:

 

              Post发的,在php端用$_POST来接,接收不到。$_FILES来进行接收。

 

 

英文:

       Enctype   编码方式  multipart/form-data 

       Upload           上传

       File                文件

       Size               大小

 

文件上传七伤拳。

       1,看数组结构   【本质上面,我们就是在操作这个数组】

       2,判断文件是否有错误

       3,判断文件大小

       4, 判断文件后缀是否在准许的后缀

       5,判断文件MIME类型

       6,判断是否是上传文件

       7,移动文件   [按照日期生成子目录来保存文件,产生随机的文件名]

 

 

看数组结构:

       这是一个二维数组,看着大纲来进行. 数组当中的第一个下标为表单里面的名称。

                                   这个数组当中第一个下标对应了一个新数组。

                                   新组当中的第一个元素下标为name,值为文件的原名。

       新数组当中的第二个元素为type,类型。文件的mime类型。Mime,认文件类型认的更加准确。MIME是给浏览器和电脑人的,不是给人看的吧。

      

       Tmp_name   临时文件路径  是将用 户上传的文件放入操作系统的临时目录下面。【以后是将其移动到指定目录下面来的】

             

       Error              错误,上传是否有错误  0叫上传成功

 

       Size               文件滴大小

      

 

 

 

第二拳:

       判断错误  如果无错,返回一个0,自动类型转换为bool值的假

 

       1,我们可以强制取反 

       2,我们可以显示错误,有错误就停止上传,如果无错误,就继续执行上传段代码

 

 

       错误为0 无错

1                  超过了php.ini当中的max_upload_size这一项准许的值

 

通常情况下为2M,但是,可以手动修改。不能超过POST最大准许大小

 

post_max_size = 8M  不要超过了内存准许的大小

 

php可以使用的内存限制  memory_limit = 128M

 

2                  超过了表单的MAX_FILE_SIZE指定的大小

3                  部份文件被上传

4                  没有文件被上传

6     找不到临时文件夹  upload_tmp_dir = 手动指定临时文件夹所在的目录

 

7                 文件写入失败  

 

第三拳,

              判断文件大小

 

第四拳

              判断后缀

第五拳

              判断MIME

第六拳

       Is_uploaded_file  传进上传的临时文件,判断这是不是我PHP上传的文件

 

第七拳

       Move_uploaded_file       移动上传文件(临时文件路径, 新路径和新名)

 

 

 

 

扩展一个函数

       Uniqid()          产生一个唯一的ID

 

 

 

 

 

注意:

       请在文件上传的时候目录一定要加斜线,不加斜线,在移动的时候,就会和文件名拼接。

 

 

 

 

 

下载

 

1,  告诉浏览器类型

2,  告诉浏览器这是附件

3,  告诉浏览器大小   [可选]

4,  读取并输出文件内容   readfile

 

 

posted @ 2012-05-28 12:53  holyes  阅读(149)  评论(0编辑  收藏  举报