Home > Backend Development > PHP Tutorial > PHP文件的上传

PHP文件的上传

WBOY
Release: 2016-06-23 13:28:10
Original
869 people have browsed it

<?phpheader('Content-type:text/html;charset=utf-8');if(isset($_POST['submit'])){//检测表单'submit'是否有上传,如果有上传继续下一步,如果没那就没反应if(is_uploaded_file($_FILES['myfile']['tmp_name'])){//检测指定文件是否通过HTTP POST上传的,如果是继续下一步,如果不是提示'可能有攻击!'$arr=pathinfo($_FILES['myfile']['name']);//输出返回路径的信息(具体返回什么看手册)$newName=date('YmdGis').rand(1000,9999);//按年月日后面加1000到9999随机数字输出文件名if(move_uploaded_file($_FILES['myfile']['tmp_name'],"upload/{$newName}.{$arr['extension']}")){//move_uploaded_file把该文件的移动到另一文件里面(该函数参数是写被移动文件和移到到目标文件的路径)//($arr['extension']这个函数根据返回路径的信息确定文件后缀名)//如果上传后的文件移动到目标目录成功则输出'上传成功!',否则输出'移动文件失败!'//为什么要在上传文件的同时写上文件名和后缀名?因为相同的文件名和后缀名会覆盖掉,所以要写这么个判断。        echo '上传成功!';    }else{    echo '上传文件失败!';    }    }else{    exit('可能有攻击!');    }}var_dump($_FILES);?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"/><title>上传页面</title></head><body><form action="" method="post" enctype="multipart/form-data"><!-- 注意点:属性method和enctype设置 --><input type="file" name="myfile" /><!-- 上传控件 --><input type="submit" name="submit" value="开始上传" /><!-- 提交按钮 --></form></body></html>
Copy after login

步骤1:检测表单'submit'是否有上传,如果有上传继续下一步,如果没那就没反应。

步骤2:检测指定文件是否通过HTTP POST上传的,如果是继续下一步,如果不是提示'可能有攻击!'。

步骤3:move_uploaded_file把该文件的移动到另一文件里面(该函数参数是写被移动文件和移到到目标文件的路径)。

步骤4:要在上传文件的同时写上文件名和后缀名,因为如果不写,遇到相同的文件名和后缀名会覆盖掉,所以要写这么个判断。

步骤5:因为要判断,所以要写判断文件名和后缀名的公式。(详细看上面程序)

步骤6:上传文件,测试程序。


一.在上传前,我们需要设置与上传相关的php配置选项(php.ini)。

配置项                        可能值      功能描述

file_uploads               ON         确定服务器上的PHP脚本是否可以接受HTTP文件上传。

memory_limit               8M         设置脚本可以分配的最大内存量,防止失控的脚本独占 服务器内存。

upload_max_filesize        2M         限制PHP处理上传文件的最大值,此值必须小于         post_max_size值。

post_max_size              8M         限制通过POST方法可以接受的信息最大量。

upload_tmp_dir             NULL       上传文件存放的临时路径,可以是一个绝对路径。这个目录对于拥有此服务器进程用户必须是可写的。


二.$_FILES多维数组:用于存储各种与上传有关的信息(输出后显示的信息)(具体看参考手册)

三.PHP文件的上传处理函数:用于上传文件的后续处理.

is_uploaded_file()判断指定的文件是否通过HTTP POST上传的

move_uploaded_file()文件上传后,首先会存储于服务器的临时目录中,可以使用该函数将上传的文件移动到新位置.


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template