php多文件上传下载示例分享


Posted in PHP onFebruary 20, 2014
<html>
<head>
    <meta charset="utf-8">
    <title>index_uploads</title>
</head>
<body>
    <form action="uploads.php" method="post" enctype="multipart/form-data">
        <input type="file" name="file[]">
        <br>
        <input type="file" name="file[]">
        <br>
        <input type="file" name="file[]">
        <br>
        <input type="file" name="file[]">
        <br>
        <input type="file" name="file[]">
        <br>
        <input type="submit" value="uploads">
    </form>
</body>
</html>

index_uploads.php

<?php
    echo "<pre>";
    print_r($_FILES);
    echo "</pre>";
    $count = count($_FILES['file']['name']);
    for ($i = 0; $i < $count; $i++) {
        $tmpfile = $_FILES['file']['tmp_name'][$i];
        $filefix = array_pop(explode(".", $_FILES['file']['name'][$i]));
        $dstfile = "uploads/files/".time()."_".mt_rand().".".$filefix;
        if (move_uploaded_file($tmpfile, $dstfile)) {
            echo "<script>alert('succeed!');window.location.href='listdir.php';</script>";
        } else {
            echo "<script>alert('fail!');window.location.href='index_uploads.php';</script>";
        }
    }

uploads.php

<?php
    header("content-type:text/html;charset=utf-8");
    $dirname = "uploads/files";
    function listdir($dirname) {
        $ds = opendir($dirname);
        while ($file = readdir($ds)) {
            $path = $dirname.'/'.$file;
            if ($file != '.' && $file != '..'){
                if (is_dir($path)) {
                    listdir($path);
                } else {
                    echo "<tr>";
                    echo "<td><img src='$path'></td>";
                    echo "<td><a href='download.php?imgfile=$file'>Download</a></td>";
                    echo "</tr>";
                }
            }
        }
    } 
    echo "<h2>图片下载|<a href='index_uploads.php'>图片上传</a></h2>";
    echo "<table width='700px' border='1px'>";
    listdir($dirname);
    echo "</table>";

listdir.php

<?php
    $imgfile = $_GET['imgfile'];
    $path = './uploads/files/'.$imgfile;
    $imgsize = filesize($path);
    header("content-type:application/octet-stream");
    header("content-disposition:attachment;filename={$imgfile}");
    header("content-length:{$imgsize}");
    readfile($path);
download.php

download.php

核心下载:

header("content-type:application/octet-stream");
header("content-disposition:attachment;filename={$imgfile}");
header("content-length:{$imgsize}");
readfile($path);
PHP 相关文章推荐
PHP.MVC的模板标签系统(五)
Sep 05 PHP
session 的生命周期是多长
Oct 09 PHP
改变Apache端口等配置修改方法
Jun 05 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 PHP
PHP7 参数处理机制修改
Mar 09 PHP
php分页代码学习示例分享
Feb 20 #PHP
php多文件上传实现代码
Feb 20 #PHP
php图片缩放实现方法
Feb 20 #PHP
php跨域cookie共享使用方法
Feb 20 #PHP
PHP中redis的用法深入解析
Feb 20 #PHP
MongoDB在PHP中的常用操作小结
Feb 20 #PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 #PHP
You might like
PHP Socket 编程
2010/04/09 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
jquery.blockUI.js上传滚动等待效果实现思路及代码
2013/03/18 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
python字典多条件排序方法实例
2014/06/30 Python
Python实现partial改变方法默认参数
2014/08/18 Python
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
Python 多维List创建的问题小结
2019/01/18 Python
python实现爬山算法的思路详解
2019/04/09 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
python实现简单的购物程序代码实例
2020/03/03 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
Overload和Override的区别
2012/09/02 面试题
幼儿运动会邀请函
2014/01/17 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
党校学习个人总结
2015/02/15 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
python基础之while循环语句的使用
2021/04/20 Python