PHP 上传与下载

1 upload

   $_FILES 超全局数组,包含了有关上传文件的所有信息!
    而且,这个数组中只包含文件相关信息,其他数据依然在$_POST里面。
      $_FILES 是一个二维数组,每上传一个文件,都是数组的一个子数组。每个子数组包含信息如下:
      ‘name‘ => string ‘ch05-数据库对象.ppt‘ (上传文件名)
      ‘type‘ => string ‘application/vnd.ms-powerpoint‘ (上传文件所属的MIME类型)
      ‘tmp_name‘ => string ‘E:\Tools\wamp64\tmp\phpDEC9.tmp‘ (文件上传后,在服务器存储的缓存文件地址)
      ‘error‘ => int 0 (出现的错误信息,0表示没有错误)
      ‘size‘ => int 836096 (上传文件的大小)
   
      error常见的值:
      0 没有任何错误
      1 超过服务器限制大小。  php.ini文件的upload_max_filesize;
      2 超过客户端限制大小。 表单中的隐藏域name="MAX_FILE_SIZE"限制的大小
      3 文件只被上传了一部分、
      4 没有上传文件

    var_dump($_FILES);

    foreach ($_FILES as $key => $value) {
        //取到文件名,并用.分隔为数组
        $nameArr = explode(".", $_FILES[$key]["name"]);
        //从上述数组中,取到最后一个,就是上传文件的后缀名
        $houzhiming = $nameArr[count($nameArr)-1];
        //使用当前时间+随机数的方式,随机生成一个文件名
        $filename = date("YmdHis").rand(100,999).".".$houzhiming;
        // 判断myFile里面的临时文件,是不是上传过来的。
        if(is_uploaded_file($_FILES[$key]["tmp_name"])){
            // 将临时文件,移动到服务器www根目录下的upload文件夹中。
            // 如果成功返回true,否则返回false
            $isOk = move_uploaded_file($_FILES[$key]["tmp_name"],$_SERVER[‘DOCUMENT_ROOT‘]."/upload/".$filename);
            if(!$isOk){
                echo("文件【{$_FILES[$key]["name"]}】上传失败,无法移动到指定目录下!!");
                continue;
            }
        }else{
            echo("文件【{$_FILES[$key]["name"]}】上传的文件不是合法上传的!");
            continue;
        }

        echo "文件【{$_FILES[$key]["name"]}】上传成功!!!<br>";
    }
2 download

  这段代码虽然自己写不简单但是我们可以用现成的,所以也就是多复杂了

    //文件下载练习
    $filename="./upload/aa.png";
    $basename=pathinfo($filename);
    header("Content-Type: image/png"); //指定下载文件类型的
    header("Content-Disposition:attachment;filename=".$basename["basename"]);//指定下载文件的描述信息
    header("Content-Length:".filesize($filename));  //指定文件大小的
    readfile($filename);//将内容输出,以便下载。
时间: 2024-11-10 08:10:12

PHP 上传与下载的相关文章

Linux (rz、sz命令行)与本地电脑 命令行上传、下载文件

Linux 与本地电脑直接交互, 命令行上传.下载文件. 一.lrzsz命令行安装: 1.rpm安装:(链接: http://pan.baidu.com/s/1cBuTm2 密码: vijf) rpm -ivh lrzsz-0.12.20-22.1.x86_64.rpm 2.yum 安装: yum install lrzsz 二.命令使用: 1.发送到本地: sz 文件名 2.上传到服务器: rz -be 在弹出的框中选择文件,上传文件的用户和组是当前登录的用户

文件的上传与下载

为方便用户处理文件上传数据,Apache 开源组织提供了一个用来处理表单文件上传的一个开源组件( Commons-fileupload ),该组件性能优异,并且其API使用极其简单,可以让开发人员轻松实现web文件上传功能,因此在web开发中实现文件上传功能,通常使用Commons-fileupload组件实现. 使用Commons-fileupload组件实现文件上传,需要导入该组件相应的支撑jar包:Commons-fileupload和commons-io. commons-io 不属于文

使用Loadrunner进行文件的上传和下载

最近使用loadrunner中需要录制文件的上传和下载,上传功能模块利用录制可以直接实现,下载无法实现,在网上找到了一段代码,自己动手试验了下,发现没有用 辛苦找到的,还是记录下吧 (1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=https://testserver/console/importStudent.do", "Method=POST", "EncTy

JavaWeb学习总结(五十)——文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

深入分析JavaWeb Item40 -- 文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

Struts2控制文件的上传与下载

Struts2控制文件上传与下载的几个注意事项: (1)必须将表单的method设置为post,将enctype设置为multipart/from-data.只有这样,浏览器才会把用户选择文件的二进制数据发送给数据. (2)Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,因此,如果需要使用Struts2的文件上传功能,则需要在web应用中增加两个JAR文件,即commons-io-2.2.jar和commons-fileupload-1.3.1.jar

文件上传与下载!

1.上传: 1.上传数据的类型:字符,字节 1.文本类型(字符):通过url网址的?:通过表单元素:AJAX. 2.文件类型(字节):通过表单元素(file). 2.上传文件的方式: 1.form表单实现文件上传:常用方式(上传文件用post,不用get,因为get方式对于上传量有限) 通过鼠标单击,在File标签中选择的文件,才能上传. 2.通过AJAX实现文件上传:禁用方式   AJAX的数据传递通过javascript脚本取值.如果传递文件,那么也需要通过javascript脚本获取文件内

Javaweb学习笔记10—文件上传与下载

 今天来讲javaweb的第10阶段学习.文件的上传与下载,今天主要说的是这个功能的实现,不用说了,听名字就是外行人也知道肯定很重要啦. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多 一*, 文件的上传:      1 *分析实现步骤: 1.1* 客户端浏览器通过文件域选择本地要上传的文件. * 点击"上传"按钮

ftp上传与下载

在企业级应用系统中,文件上传与下载是最常用的功能之一.当然,这些文件也是有存储周期,根据业务需要而定. 驾驶员培训管理系统(简称驾培系统)需要判断学员学时的有效性,通过学时记录仪,采集学员在教练车中里照片, 上传到web服务器中,由web服务器上传到文件服务器,,比便做人脸比对..为保证学时的实时性,这期间会产生多次比对,当 然也会产生许多学员人脸照片.为方便管理这些照片,我们会采用分层级目录来存放照片. 这里主要介绍基于commons-net实现ftp创建文件夹.上传.下载功能. 创建文件夹

【转】每天一个linux命令(26):用SecureCRT来上传和下载文件

原文网址:http://www.cnblogs.com/peida/archive/2012/11/28/2793181.html 用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. 文件传输协议: 文件传输是数据交换的主要形式.在进行文件传输时,为使文件能被正确识别和传送,我们需要在两台计算机之间建立统一的传输协议.这个协议包括了文件的识别.传送的