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 相关文章推荐
一个从别的网站抓取信息的例子(域名查询)
Oct 09 PHP
PHP define函数的使用说明
Aug 27 PHP
PHP 最大运行时间 max_execution_time修改方法
Mar 08 PHP
php自定义函数call_user_func和call_user_func_array详解
Jul 14 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
Jun 28 PHP
PHP处理JSON字符串key缺少双引号的解决方法
Sep 16 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
利用php_imagick实现复古效果的方法
Oct 18 PHP
php实现购物车产品删除功能(2)
Jul 23 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 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和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
bootstrap栅格系统示例代码分享
2017/05/22 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
详解Python中for循环的使用方法
2015/05/14 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
python的else子句使用指南
2016/02/27 Python
python 检查文件mime类型的方法
2018/12/08 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
python实现同一局域网下传输图片
2020/03/20 Python
Python中常用的os操作汇总
2020/11/05 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
终端业务员岗位职责
2013/11/27 职场文书
个人务虚会发言材料
2014/10/20 职场文书