• PHP学习笔记八、上传和下载


    一、文件上传

    1、简介

    2、客户端

    3、服务器端

    3.1、接受数组($_FILES)

    3.2、错误值

    3.3、移动文件
    move_upload_file

    3.4、文件类型限制

    4、练习(单文件上传)

    <!--上传文件-->
    <?php
    function fun_upload($error,$type,$size,$tempName){
    	if (!empty($_POST)) {
    		if ($error==0) {
    			//限制文件类型
    			switch ($type) {
    				case 'image/jpeg':
    					$hz=".jpg";
    					break;
    				case 'image/pjpeg':
    					$hz=".jpg";
    					break;
    				case 'image/gif':
    					$hz=".gif";
    					break;
    				case 'image/png':
    					$hz=".png";
    					break;
    				case 'image/x-png':
    					$hz=".png";
    					break;			
    				default:
    					$hz=false;
    					break;
    			}
    			if (!$hz) {
    				echo "文件类型不正确!必须是jpg/png/gif格式";
    			}
    			else{
    				//限制文件大小
    				if ($size>=200000) {
    					echo "文件大小不能超过200K!";
    				}
    				else{
    					//创建目录
    					if (!file_exists("./upload/".date("Y"))) {
    						//创建年文件夹
    						mkdir("./upload/".date("Y"));
    						//创建月日文件夹
    						mkdir("./upload/".date("Y")."/".date("md"));
    					}
    					else if (!file_exists("./upload/".date("Y")."/".date("md"))) {
    						mkdir("./upload/".date("Y")."/".date("md"));
    					}
    					//移动文件
    					if (move_uploaded_file($tempName, "./upload/".date("Y")."/".date("md")."/".rand(1000,9999).time().$hz)) {
    						echo "上传成功!";
    					}
    					else{
    						echo "上传失败!请检查是否存在upload文件夹或者是否有权限";
    					}
    				}
    			}
    		}
    		else{
    			echo "上传失败!请检查文件大小是否超过服务器或客户端的配置";
    		}
    	}
    }
    ?>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="2000000"/>
    <input  type="file" name="head"/>
    <input type="submit" name="sub" value="上传"/>
    </form>
    

    二、文件下载

    1、下载链接

    <!--浏览器解析不了的文件,就支持直接下载-->
    <a href="./web.rar">点击下载</a>
    

    2、file_get_contents

    <?php
    //获取远程文件
    $str=file_get_contents("http://c.photos.baidu.com/09898766.jpg");
    $fp=fopen("./meinv.jpg", "w");
    //写到本地
    fwrite($fp, $str);
    //关闭资源
    fclose($fp);
    ?>

    作者:liujf
    出处:http://www.cnblogs.com/liujf5566/
    本文版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利~

  • 相关阅读:
    flexbox弹性盒子布局
    LAMP环境 源码包安装
    用条件注释判断浏览器版本,解决兼容问题
    事件冒泡和事件捕获
    为js和css文件自动添加版本号
    uEditor独立图片上传
    修改netbeans模版头部的说明
    thinkphp多表关联并且分页
    thinkphp 独立分组配置
    荣耀路由HiLink一键组网如何实现?
  • 原文地址:https://www.cnblogs.com/liujf5566/p/5158120.html
Copyright © 2020-2023  润新知