PHP中ajax无刷新上传图片与图片下载功能

5年以前  |  阅读数:369 次  |  编程语言:PHP 

php ajax无刷新上传图片与图片下载功能的实现代码如下所示:


    <meta charset="utf-8" > 
        <form id= "uploadForm">  
           <p >指定文件名: <input type="text" name="filename" value= ""/></p >  
            <p> 
             上传文件:  
             <input type="file" name="photo" onchange="showPreview(this)" class="file" /> 
             <img id="portrait" src="" width="70" height="75"> 
           </p>  
           <input type="button" value="上传" onclick="doUpload()" />  
        </form>  
        <script src="http://www.haoyunyun.cn/jquery.js"></script> 
        <script> 
        function doUpload() {  
           var formData = new FormData($( "#uploadForm" )[0]);  
           $.ajax({  
             url: 'submit.php' ,  
             type: 'POST',  
             data: formData,  
             async: false,  
             cache: false,  
             contentType: false,  
             processData: false,  
             success: function (returndata) {  
               alert(returndata);  
             },  
             error: function (returndata) {  
               alert(returndata);  
             }  
           });  
        }  
        </script> 
        <script type="text/javascript"> 
        function showPreview(source) { 
          var file = source.files[0]; 
          if (window.FileReader) { 
            var fr = new FileReader(); 
            fr.onloadend = function(e) { 
              document.getElementById("portrait").src = e.target.result; 
            }; 
            fr.readAsDataURL(file); 
          } 
        } 
       </script> 

submit.php


    <?php 
      if($_FILES['photo']['error']>0){ 
        echo "上传文件失败"; 
        die; 
      } 
      $dir='./photo/'; 
      $type=substr($_FILES['photo']['name'],strrpos($_FILES['photo']['name'],'.')); 
      $filename=time().rand(1000,9999).$type; 
      if(is_uploaded_file($_FILES['photo']['tmp_name'])){ 
        move_uploaded_file($_FILES['photo']['tmp_name'],$dir.$filename); 
        echo "上传成功"; 
      }else{ 
        echo "上传文件失败"; 
      } 

遍历数据库数据


     <?php 
      header("content-type:text/html;charset=utf-8"); 
      $link=mysql_connect("127.0.0.1",'root','root'); 
      mysql_select_db("php9",$link); 
      mysql_query("set names utf8"); 
      //查询数据中的总条数 
      $sql="select count(id) as count from upload"; 
      $arr=mysql_query($sql); 
      $result=mysql_fetch_assoc($arr); 
      //获得总条数 
      $size=$result['count']; 
      //每页显示2条数据 
      $length=6; 
      //计算出多少页 
      $pages=ceil($size/$length); 
      $page=isset($_GET['page'])?$_GET['page']:1; 
      if($page<=0){ 
        $page=1; 
      } 
      if($page>$pages){ 
        $page=$pages; 
      } 
      //数据从第几条开始 
      $start=($page-1)*$length; 
      $sql="select * from upload limit $start,$length"; 
      $res=mysql_query($sql); 
      ?> 
      <center> 
      <table border="1"> 
        <div> 
          <?php 
          while($a=mysql_fetch_assoc($res)){ 
            ?> 
            <ul> 
              <li><?php echo $a['id'] ?></li> 
              <li><?php echo $a['username'] ?></li> 
              <li><a href="photo.php" rel="external nofollow" ><img src="<?php echo $a['dir'] ?>" width="80px" ></a> </li> 
              <li><?php echo $a['desc1'] ?></li> 
              <li> 
                <a href="photo3.php?dir=<?php echo $a['dir'] ?>" rel="external nofollow" >下载</a> 
                <a href="photo4.php?id=<?php echo $a['id'] ?> && dir=<?php echo $a['dir'] ?>" rel="external nofollow" >删除</a> 
              </li> 
            </ul> 
          <?php 
          } 
          ?> 
        </div> 
      </table> 
                  <a href="photo2.php?page=1" rel="external nofollow" >首页</a> 
                  <a href="photo2.php?page=<?php echo $page-1 ?>" rel="external nofollow" >上一页</a> 
                  <a href="photo2.php?page=<?php echo $page+1 ?>" rel="external nofollow" >下一页</a> 
                  <a href="photo2.php?page=<?php echo $pages ?>" rel="external nofollow" >尾页</a> 
      </center> 
      <style> 
        *{ 
          margin: 0; 
          padding: 0; 
        } 
        div{ 
          width:900px; 
          height: 850px; 
          border: 1px solid #28a4c9; 
          margin: auto; 
        } 
        img{ 
          width: 200px; 
          height: 130px; 
          margin-left: 100px; 
        } 
        ul{ 
          width: 400px; 
          height: 300px; 
          float: left; 
        } 
        li{ 
          list-style: none; 
          margin-left: 10px; 
        } 
      </style> 

下载代码


     <?php 
      header("content-type:text/html;charset=utf-8"); 
      $dir=$_GET['dir']; 
      $filename=substr($dir,strrpos($dir,'/')+1); 
      header("Content-type:image"); 
      header("content-disposition:attachment;filename=$filename"); 
      readfile($dir); 
      ?> 

以上所述是小编给大家介绍的PHP中ajax无刷新上传图片与图片下载功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例