如何使用PHP实现文件上传

本文将介绍PHP实现上传文件的核心机制:     
上传文件分为两个部分,HTML显示部分和PHP处理部分,HTML部分主要是让用户来选择所要上传的文件,
然后通过PHP中的$_FILES,我们可以把文件上传到服务器的指定目录。
一下是代码和相关说明:
先来看一下HTML部分:
<form action="upload.php" method="post" enctype="multipart/form-data" action="<?php echo $PATH_INFO?>">
   上传:<input type="file" name="myfile" />
        <input type="submit" name="submit" value="上传" />
</form>
说明:
为了实现文件上传,在form中我们定义了如下属性:
enctype="multipart/form-data",这个属性是必要的。
action定义文件提交路径:上传到当前路径
method定义提交方法:post。
在input中,我们使用type="file"属性,来表示浏览文件。
再来看一个php处理部分:
<?php
//request the parameter from form
if($_POST["submit"]=="Upload & Send"){  //检测是否提交
$file_name= $_FILES['userfile']['name'] ;
$tmp_name = $_FILES['userfile']['tmp_name'];
//upload file
if(is_uploaded_file($tmp_name)){
$dest_dir='upLoad';                        //上传文件的路径
$dest=$dest_dir.'/'.time()."_".$file_name; //为了避免重复提交,将每次上传的文件名前加上时间戳
$r=move_uploaded_file($tmp_name,$dest);     
}else {
echo "file upload failed !";
}
?>
对于$_FILES[] ,我们有必要了解以下知识:
$_FILES['myfile']['name']  是指被上传文件的名称
$_FILES['myfile']['type']  是指被上传文件的类型
$_FILES['myfile']['size']  是指被上传文件的大小,单位为字节(B)
$_FILES['myfile']['tmp_name']  是指被上传文件存在服务器中的临时副本文件名称,文件被移动到指定目录后临文件将被自动消毁。
$_FILES['myfile']["error"]  是指由文件上传中有可能出现的错误的状态码,error的错误代码如下:
0; 文件上传成功。
1; 超过了文件大小php.ini中。
2;   超过了文件大小 MAX_FILE_SIZE 选项指定的值。
3; 文件只有部分被上传。
4; 没有文件被上传。
5; 上传文件大小为0。
上传文件的两个核心函数:
bool move_uploaded_file ( string filename, string destination)
函数功能: 将上传的文件移动到新位置。
第一个参数与'tmp_name'对应,第二参数是真正的上传路径,返回bool类型的值。
bool is_uploaded_file ( string filename)

函数功能:判断文件是否是通过 HTTP POST 上传的。

以上即为上传文件的核心机制,如有讲解有误,还望提出。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值