php文件上传

其实PHP的文件上传主要就是利用HTML的表单传过来的文件,而在HTML里面,需要注意下面一些东西:

   首先,from表单里面要加入属性enctype="multipart/form-data",这个是用来告诉PHP我传过去的文件类型,才可以顺利接收,以下面这个form为例:

  <form  action="01.php" method="post" enctype="multipart/form-data">
    <input type="file" name="fileName">
    <input type="submit" value="提交">
  </form>

而01.php接收到以后,会把文件数据保存在$_FILES里面,而$_FILES里面包含了下面这些

$_FILES['fileName']['name'] 显示客户端文件的原名称。
$_FILES['fileName']['type'] 文件的 MIME类型,例如"image/gif"。
$_FILES['fileName']['size'] 已上传文件的大小,单位为字节。
$_FILES['fileName']['tmp_name']储存的临时文件名,一般是系统默认。
$_FILES['fileName']['error']该文件上传相关的错误代码。以下为不同代码代表的意思:
0; 文件上传成功。
1; 超过了文件大小php.ini中即系统设定的大小。
2; 超过了文件大小
MAX_FILE_SIZE 选项指定的值。
3; 文件只有部分被上传。
4; 没有文件被上传。
5; 上传文件大小为0。
      那么这个时候文件会在哪里?其实假如你没有把文件传到指定的文件夹,它只会把文件缓存在系统指定的文件夹里面(或者php.ini里面指定的文件夹),这个缓存在这个php页面结束以后就会消失,所以必须用一个函数来把文件传到指定的文件夹,也就是php里面指定的一个函数:
      bool move_uploaded_file ( string $filename , string $destination )
      第一个参数是填写临时存放的那个文件位置(含文件名),其实也就是$_FILES['fileName']['tmp_name'],而第二个就是传你的新文件位置(含文件名),下面以一个php页面为例
<?php
$file = $_FILES['pic'];
function mk_dir(){
      $dir =date('Ym/i',time());
      if(is_dir('./' . $dir)){
            return$dir;
      }else{
            mkdir('./' .$dir,0777,true);
            return$dir;
      }
}

//获取文件后缀方法
function getExt($file){
      $tmp =explode('.',$file);
      returnend($tmp);
}

//生成随机文件名
function randName(){
      $str ='qwertyuiopasdfghjklzxcvb nm123456789';
      returnsubstr(str_shuffle($str),0,6);
}

//判断是否上传成功
if($file['error']){
      exit('上传失败');
}
$new_name = './' . mk_dir() . '/' . randName() . '.' .getExt($file['name']);
$tmp_name =$file['tmp_name'];
if(move_uploaded_file($tmp_name,$new_name)){
      echo'转移成功';
}else{
      echo'转移失败';
}
?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值