PHP实现文件上传与下载

吾爱主题 阅读:141 2021-10-25 14:11:00 评论:0

本文实例为大家分享了PHP实现文件上传与下载的具体代码,供大家参考,具体内容如下

主页index.php

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 < html > < head >   < title >图片操作</ title > < style >   #contains {   width: 500px;   margin: 0 auto;   text-align: center;   color: #0F0;   }   th {   background: #ccc;   }   td {   width: 150px;   height: 50px;   text-align: center;   } </ style > </ head >   < body >   < div id = "contains" >   < h2 >图片上传和下载</ h2 >   <!----------------文件上传表单------------->   < form action = "doupload.php" method = "post" enctype = "multipart/form-data" >    < input type = "hidden" value = "10000000" /> <!---避免上传后发现文件过大--->    < input type = "file" name = "pic" />   < input type = "submit" value = "上传" />   </ form >   <!--------------------------------------->   < table width = "500" border = "0" >   < tr >    < th >序号</ th >< th >图片</ th >< th >添加时间</ th >< th >操作</ th >   </ tr >   <? php    //1.打开目录   $ dir = opendir ("./imgs");   //2.遍历目录   $ i = 0 ;   $ color = "#ff0" ;   while ($ f = readdir ($dir)){ //$f代表这每个文件的名字     if ($f == '.' || $f == "..") continue; //处理特殊隐藏的文件    $i++;    if ($i % 2 == 0) $ color = "#ccc" ;    else $ color = "#ffa" ;    echo "<tr bgcolor=$color>";    echo "< td >{$i}</ td >";    echo "< td >< img src = './imgs/{$f}' width = '150' height = '50' /></ td >";    echo "< td >".date("Y-m-d", filectime('./imgs/'.$f))."</ td >";    echo "< td >< a href = './imgs/{$f}' >查看</ a >      < a href = 'download.php?name={$f}' >下载</ a ></ td >";    echo "</ tr >";   // echo $f." ";   }   ?>   </ table >   </ div > </ body > </ html >

上传doupload.php

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <?php   /* echo "<pre>";   var_dump($_FILES);   echo "</pre>";*/   //1.获取上传文件信息   $upfile = $_FILES [ "pic" ];   $path = "./imgs/" ;   //2、过滤错误信息   if ( $upfile [ "error" ] > 0) {   die ( "上传文件错误" );   }   //3、本次上传文件的大小过滤   if ( $upfile [ "size" ] > 10000000) {   die ( "上传文件超出限制" );   }   //4、处理文件类型   $typelist = array ( "jpeg" , "jpg" , "png" , "gif" );   $arr = explode ( "." , basename ( $upfile [ 'name' ])); //以'.'分割字符串为数组   $bz = array_pop ( $arr ); //获取文件的后缀名   if (!in_array( $bz , $typelist )) { //如果给定的值 value 存在于数组 array 中则返回 true   die ( "上传文件类型非法!" . $upfile [ "type" ]);   }   //5、设置相同文件的名字不同   $newfile = date ( "YmdHis" ).rand(100, 999). "." . $bz ;   //   if ( is_uploaded_file ( $upfile [ "tmp_name" ])) { //判断文件是否是通过post上传   //执行文件上传   if (move_uploaded_file( $upfile [ "tmp_name" ], $path . $newfile )) { //将上传的文件保存在新位置    echo "上传成功!" ;   echo "<a href='index.php'>浏览</a>" ;   } else {    die ( "上传失败" );   }   } ?>

下载download.php

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?php     //1.获取于要下载的文件名   $file = "./imgs/" . $_GET [ "name" ]; // echo $file;   //2.重设响应类型   $info = getimagesize ( $file ); //获取文件大小   // var_dump($info);   header( "Content-Type:" . $info [ "mime" ]);   //3.执行下载文件名   header( "Content-Disposition:attachment;filename=" . $_GET [ "name" ]);   //4.指定文件大小   header( "Content-Length:" . filesize ( $file ));   //5.响应内容   readfile( $file ); ?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/shofe11/article/details/37520749

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容