PHP文件上传案例,文件上传大小,权限问题

10 篇文章 1 订阅
<?php

   function upload(){
   //进行文件信息判断
   if (!isset($_FILES['avatar'])) {
   	// 客户端根本没有文件域
   	 $GLOBALS['massage']='请选择文件上传';
      return;
   }
	// 接收到文件域信息(关联数组)
    $avatar=$_FILES['avatar'];

    if($avatar['error']!==UPLOAD_ERR_OK){
    	// 没有接收到上传的文件
    	 $GLOBALS['massage']='上传失败';
    	 return;
    }
	// 接收到了文件
	// 将文件从临时文件目录移动到网站的根目录范围之内
    $source=$avatar['tmp_name'];//源文件在哪里
    // 上传的根目录,此目录必须存在
    $target='./upload/'.$avatar['name'];//目标放在哪里
    $moved=move_uploaded_file($source, $target);

	if (!$moved) {
	 //移动文件失败
	 $GLOBALS['massage']='上传失败';
	 return;
	}
     //成功
     $GLOBALS['massage']='上传成功';


   }
   if ($_SERVER["REQUEST_METHOD"]==='POST') {
   	// 接收文件,使用一个叫$_FILES的超全局成员
    upload();
   }

  ?>

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>文件上传</title>
</head>
<body>
	<!--method必须为post enctype="multipart/form-data" -->
    <form action="<?php echo($SERVER['PHP_SELF']) ?>" method="post" enctype="multipart/form-data" >
     
     <input type="file" name="avatar" >
     <button>上传</button>
	<!-- 打印上传信息 -->
    <?php if (isset($massage)): ?>
     	<p><?php echo $massage; ?></p>
     <?php endif ?>

    </form>


</body>
</html>

注意一:我们这样的文件上传只能最大传单个文件2M,请求提交数据大小8M,如果需要更改需要修改php.ini文件。

1.打开PHP文件找到php.ini-development,复制一份,改名为php.ini

2.修改单个文件大小:打开我们复制的php.ini文件,修改 upload_max_filesize 的值

3.修改请求提交数据大小:post_max_size 的值

4.到Apache/conf/hostd.conf文件中说明此文件所在路径(例如博主的php.ini文件在C盘下的php文件夹下)

#告诉PHP php.ini文件所在的路径
PHPIniDir C:/php

注意二:我们上传的文件到了另一个文件夹中可能出现无法查看到文件的具体内容,无法打开文件,没有权限

解决方案:1.右击文件属性,给文件相应的权限,改单个文件就可以打开。

                  2.修改php.ini中upload_tmp_dir 的值依然是php文件目录

                  具体可参考:https://wenku.baidu.com/view/ca97f7b9f242336c1fb95e8f.html

注意三:上传文件出现PHP Forbidden You don't have permission to access 没权限问题 

              去php.ini 修改error_reporting = E_ALL & ~E_NOTICE 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值