php程序中实现图片的上传和下载

php中实现图片的上传

1、新建一个index.php用来编辑一个页面,实现图片的上传和下载的点击和视图功能

源代码:

<html>
 <head>
  <title>图片的上传和下载</title>
  <style type="text/css">
   td{
    text-align:center;
   }
   table{
    margin:0 auto;
   }
   a{
    text-decoration:none;
   }
   a:hover{
    position:relative;
    left:1px;
    top:1px;
   }
  </style>
 </head>
 <body>
  <form action="doupload.php" method="post" enctype="multipart/form-data">  
   <table align="center">
   <caption><h1>图片的上传和下载</h1></caption><!--将caption标签放在form表格之下这样标题可以随着表单移动-->
    <tr>
     <th>上传文件</th>
     <td><input type="file" name="pic"/></td>
     <td><input type="submit" value="上传"/></td>
    </tr>
   </table>
  </form>
  <table width="500" border="1" >
   <tr>
    <th>序号</th><th>图片</th><th>添加时间</th><th>操作</th>
   </tr>
   <?php
    $file=opendir("./uploads/");
    $i=0;
    while($f=readdir($file)){
     if($f!=='.'&&$f!='..'){  
      $i++;
      echo "<tr>";
      echo "<td>{$i}</td>";
      echo "<td><img src='./uploads/{$f}' width='100',height='80'></td>";//通过文件路径加上文件名的形式定位文件的位置
      echo "<td>".date("Y-m-d-h-i-s",filectime("./uploads/".$f))."</td>";//定义日期的格式和当前的时间
      echo "<td><a href='./uploads/{$f}'>查看</a>,<a href='download.php?name={$f}'>下载</a></td>";
      echo "</tr>";
     }
    }
   ?>  
  </table>
 </body>
</html>

2、新建一个doupload.php实现图片上传的接收和分析。

<?php

//1.获取上传的文件信息
 $upfile = $_FILES["pic"];//用来接收一个一维数组,里面存放图片的信息:

$_FILES['myFile']['name'] 显示客户端文件的原名称。
$_FILES['myFile']['type'] 文件的 MIME 类型,例如"image/gif"。
$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
$_FILES['myFile']['tmp_name'] 储存的临时文件名,一般是系统默认。
$_FILES['myFile']['error'] 该文件上传相关的错误代码。以下为不同代码代表的意思:


 $typelist=array("image/jpg","image/jpeg","image/png","image/gif");
 $path="./uploads/";
//2.过滤上传文件的错误号
 if($upfile["error"]>0){
  //获取错误信息
  switch($upfile["error"]){
   case '1':
    $info="上传的文件超过了php.ini中upload_max_filesize的值";
    break;
   case '2':
    $info="上传的文件超过了html表单中MAX_FILE_SIZE选项指定的值";
    break;
   case '3':
    $info="文件只有部分上传";
    break;
   case '4':
    $info="文件没有被上传";
    break;
   case '5':
    $info="找不到临时文件夹";
    break;
   case '6':
    $info="文件写入失败";
    break;
   
  }
  die("文件上传错误,原因是:{$info}");
 }
// 3.本次文件上传大小的设置(自己选择)
 if($upfile["size"]>1000000000){
  die("文件大小超出限制");
 }
// 4.类型过滤
 if(!in_array($upfile["type"],$typelist)){
  die("上传文件类型非法");
 }
// 5.上传后文件名称的自定义
 $fileinfo=pathinfo($upfil e["name"]);//返回一个关联数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension
 do{
  $newfile=date("YmdHis").rand(1000,9999).".".$fileinfo["extension"];//为新文件定义名称格式为当前时间加上从1000~9999的随机数。
 }while(file_exists($path.$newfile));//如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE
 
//6.执行文件上传
 //判断一个文件是否是通过HTTP POST上传的
 if(is_uploaded_file($upfile["tmp_name"])){//判断在临时文件夹中中的文件是不是通过post放法上传的
  //执行文件上传
  if(move_uploaded_file($upfile["tmp_name"],$path.$newfile)){//首先检测人上传的文件名是否合法,合法的话,将文件移动到,后面的文件中
   echo "文件上传成功";
   echo "<h1><a href='index.php'>浏览</a></h1>";
  }else{
   die("文件上传失败");
  }
 }
 else{
  die("不是一个上传文件");
 }

?>

3、执行文件下载

<?php
//执行图片下载
//1.获取要下载的图片名(加上路径)
 $file = "./uploads/".$_GET["name"];
//2.重设响应类型
 $info = getimagesize($file);//以数组的形式返回文件的大小,尺寸,类型和可以用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串。
 header("Content-Type:".$info["mime"]);//提示用户保存一个生成的$info["mime"]类型的文件
//3. 执行下载的文件名:
 header("Content-Disposition:attachment;filename=".$_GET["name"]);//Content-Disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框
//4. 指定文件的大小
 header("Content-Length:".filesize($file));
 
//5. 响应内容
 readfile($file);


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
程序是一种轻量级的应用程序,可以在移动设备上运行,具有快速加载、用户界面简洁等特点。在小程序开发,可以使用PHP作为后端语言来完成图片上传功能。 首先,在小程序端,可以使用微信官方提供的API来选择图片,并将选择的图片转化为Base64格式的字符串编码。然后,将该字符串作为参数,通过网络请求将图片数据发送给后端。 在PHP后端,可以接收前端传递的图片数据,并将Base64字符串解码为真实的图片文件。可以使用base64_decode函数来实现解码操作。解码后的图片文件可以保存到服务器的指定路径。 具体的操作步骤如下: 1. 在小程序端,使用微信原生API获取用户选择的图片,并将图片转换为Base64格式的字符串编码。 2. 将Base64字符串作为参数,通过网络请求POST方式将图片数据发送到PHP后端。 3. PHP后端接收到图片数据后,使用base64_decode函数将Base64字符串解码为图片文件。 4. 将解码后的图片文件保存到服务器的指定路径,可以使用file_put_contents函数实现保存操作。 5. 返回给小程序上传成功的消息或者图片的URL地址。 在实际开发,还需要注意图片大小的限制、文件格式的判断等问题。同时,为了保证安全性,在后端还可以进行一些图片验证或者权限控制的处理。 通过以上步骤,就可以实现程序使用PHP后端完成图片上传功能

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值