php学习笔记(十)文件的上传与下载

<?php
/**
 * 文件上传和下载
 * 1.表单提交
 *         表单必须要改的method="post"
 *         enctype="multipart/form-data"
 *         php.ini:
 *             file_uploads=On;
 *             upload_max_filesize = 2M;//上传限制
 *             post_max_size = 8M;//表单传递的最大尺寸
 *        $myfile1[type]:可以用来控制上传文件的类型
 *            type是MIME类型:网络
 *                text
 *                    text/html
 *                    text/plain
 *                image
 *                    image/gif
 *                    image/jpeg
 *                    image/png
 *                audio
 *                    audio/x-midi .mid .midi
 *                    audio/x-wav
 *                video
 *                    video/quicktime .qt .mov
 *                    video/mpeg .mpeg
 *                application
 *                    application/pdf
 *                    application/msword .doc .dot
 *                    application/vnd.ms-excel .xls
 *                    application/vnd.ms-powerpoint .ppt
 *                    application/zip .zip
 *                    application/rar .rar
 *                    application/xml .xml
 *                    application/mshelp .hlp .chm
 *                    application/octet-stream .ext .bin .com .dll
 *                multipart
 *                message
 * 2.对文件的操作
 *         上传文件拷贝的函数:
 *             move_uploaded_file()
 *         error的提示符及原因:
 *             case 1:上传文件超过了upload_max_filesize这个值
 *             case 2:上传文件超过了表单中MAX_FILE_SIZE选项指定的值
 *             case 3:文件只有部分被上传
 *             case 4:没有文件上传
 *
 * 3.下载文件(在下载页面,只允许写如下代码,不可以写其他的html多余代码)
 *         对于图片和html或者php下载应该写头
 *             header();方法前不许有输出,即使是html也不可以
 *         图片下载:
            header("Content-type:image/jpeg");
            //设置下载文件
            header('Content-disposition:attachment:filename='.$filename);
 *         
 */

    $filename = "one.html";
    //设置下载类型
    header("Content-type:text/html");
    //设置下载文件
    header('Content-Disposition:attachment;filename='.$filename);
    //设置文件下载大小
    header("Content-Length:".filesize($filename));
    
    $fp = fopen($filename, "r");
    while (feof($fp)==FALSE){
        echo fread($fp, 1024);
    }
    fclose($fp);
?>

<html>
    <head>
        <title>文件上传</title>
    </head>
    <body>
        <form action="" method="post" enctype="multipart/form-data">
            用户名:<input type="text" name="username"><br>
            密码:<input type="password"" name="password"><br>
                <hr><br>
                <input type="file" name="myfile1">
                <input type="hidden" name="MAX_FILE_SIZE" value="100000">
                <input type="file" name="myfile2">
                <input type="file" name="myfile[]">
                <input type="file" name="myfile[]">
                <input type="file" name="myfile[]">
                <input type="file" name="myfile[]">
                <input type="file" name="myfile[]">
                <input type="file" name="myfile[]">
                <input type="file" name="myfile[]">
                <input type="submit" value="提交"><br>
        </form>
    </body>
</html>

<?php

    $username = $_POST["username"];
    $password = $_POST["password"];
    //可以重名;然后按照数组来取值
    $myfile1 = $_FILES["myfile1"];
    $myfile2 = $_FILES["myfile2"];
    $name3 = $_FILES["myfile"][name][0];
    $name4 = $_FILES["myfile"][name][1];
    $name5 = $_FILES["myfile"][name][2];
    print_r($_FILES)."<br>";
    echo "用户名:".$username."密码:".$password."<br>";
    echo "文件一名:".$myfile1[name]."<br>";
    echo "文件一类型:".$myfile1[type]."<br>";
    echo "文件一文件路径:".$myfile1[tmp_name]."<br>";
    echo "文件一错误信息:".$myfile1[error]."<br>";
    echo "文件二:".$myfile2[name]."<br>";
    echo "文件三:".$name3."<br>";
    echo "文件四:".$name4."<br>";
    echo "文件五:".$name5."<br>";
    
    $uploadfile = $myfile1[name];
    $copyto = "test/".time().$uploadfile;
    if (is_uploaded_file($uploadfile)){
        if (move_uploaded_file($uploadfile, $copyto)){
            echo "上传文件成功<br>";
        }else{
            echo "上传文件失败<br>";
        }
    }
    
?>

源码下载: php教程学习笔记
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值