• 文件上传


    1、创建一个文件上传表单

    请留意如下有关此表单的信息:

    <form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。

    <input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。

    2、创建上传脚本

    <?php
    if ($_FILES["file"]["error"] > 0)
      {
      echo "Error: " . $_FILES["file"]["error"] . "<br />";
      }
    else
      {
      echo "Upload: " . $_FILES["file"]["name"] . "<br />";
      echo "Type: " . $_FILES["file"]["type"] . "<br />";
      echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
      echo "Stored in: " . $_FILES["file"]["tmp_name"];
      }
    ?>

    PHP文件的上传与下载

      1. 文件上传
        1.1 客户端上传设置
        ① form 必须用 post
        ② 给form 指定属性 enctype=’multipart/form-data’
        <input type='file' name="">
        ④ 表单中可以对上传文件的大小进行限制 (可选)
        <input type='hidden' name="MAX_FILE_SIZE" value="">
        必须写到 input:file 的前面
        1.2 在服务器端通过PHP处理上传
        1.2.1 PHP配置文件中与文件上传有关的选项
        指令名 默认值 功能描述
        file_uploads ON 是否开启文件上传
        max_file_uploads = 20 上传文件数量限制
        upload_max_filesize 单个文件 2M 限制PHP处理上传文件大小的最大值,此值必须小于post_max_size
        post_max_size 8M
        限制通过POST方法可以接受信息的最大值,也就是整个POST请求的提交值。此值必须大于upload_max_filesize
        整个表单的大小
        upload_tmp_dir NULL 上传文件存放的临时路径,可以是绝对路径。默认NULL则使用系统的临时目录。
        1.2.2 $_FILES多维数组
        [input的name]=>array(
        ‘name’ => 原文件的名字,
        ‘type’ => 文件mime类型
        ‘tmp_name’ => 临时文件的路径
        ‘error’ => 错误号 0表示上传成功
        ‘size’ => 文件的大小
        )
        error错误号:
        0 表示上传成功
        1 超过了 php.ini 中 upload_max_filesize 的限制
        2 超过了 HTML 表单 中隐藏域设置的 限制
        3 文件只有部分被上传
        4 文件没有上传
        6 找不到临时目录
        7 文件写入失败
        1.2.3 常见数据格式(MIME)
        文件类型 MIME类型
        图片文件 image/gif,image/jpg,image/jpeg,image/png,image/x-png
        纯文本和HTML text/txt,text/plain,text/html
        二进制文件 application/octet-stream
        音频格式 audio/basic
        视频格式 video/mpeg
        1.2.4 PHP文件上传处理函数
        is_uploaded_file()
        move_uploaded_file()

      2. 多文件上传
        使用不同的表单元素
        <input type="file" name="file_a">
        <input type="file" name="file_b">
        <input type="file" name="file_b">

        使用数组格式的表单元素
        <input type="file" name="file[]">
        <input type="file" name="file[]">
        <input type="file" name="file[]">

        HTML5指定inputd的属性
        <input type="file" name="file[]" multiple>

      3. 文件下载
        //获取服务器要下载文件的路径
        $filename="./upload/aa.png";

        //获取文件的文件名
        $basename=pathinfo($filename);

        //指定下载文件类型的
        header("Content-Type: image/png");

        //设置head头信息,告知该文件时下载附件并且制定客户端临时存储名称
        header("Content-Disposition:attachment;filename=". $basename["basename"]);
        //指定下载文件的描述信息
        //指定文件大小的
        header("Content-Length:".filesize($filename));

        //将内容输出,以便下载。
        readfile($filename);

  • 相关阅读:
    命令模式
    js代理模式,处理缓存
    js设计模式之策略模式
    查看并修改签名证书keystore的密码,alias别名等相关参数
    【fiddler】配置代理后个别app连不上网的问题
    使用Fiddler域名过滤、断点、小技巧绕过前端验证
    App上架各大应用市场的地址及操作方法
    获取APK获取APK证书MD5、SHA1、SHA256等秘钥
    Python一切皆对象
    WEB基础之布局与定位
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7739497.html
Copyright © 2020-2023  润新知