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

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无刷新上传图片与图片下载功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • php+html5+ajax实现上传图片的方法

    本文实例讲述了php+html5+ajax实现上传图片的方法.分享给大家供大家参考,具体如下: <?php if (isset($_POST['upload'])) { var_dump($_FILES); move_uploaded_file($_FILES['upfile']['tmp_name'], 'up_tmp/'.time().'.dat'); //header('location: test.php'); exit; } ?> <!doctype html> <

  • php+ajax实现带进度条的上传图片功能【附demo源码下载】

    本文实例讲述了php+ajax实现带进度条的上传图片功能.分享给大家供大家参考,具体如下: 运行效果图如下: 代码如下: <?php if(isset($_FILES["FileInput"]) && $_FILES["FileInput"]["error"]== UPLOAD_ERR_OK) { ############ Edit settings ############## $UploadDirectory = 'F:

  • php+ajax无刷新上传图片的实现方法

    本文实例讲述了php+ajax无刷新上传图片的实现方法.分享给大家供大家参考,具体如下: 1.引入文件 <!--图片上传begin--> <script type="text/javascript" src="/js/jquery.form.js"></script> <script type="text/javascript" src="/js/uploadImg.js">&l

  • php ajax无刷新上传图片实例代码

    AJAX 客户端页面代码: index.html 复制代码 代码如下: <html> <body> <h1>Ajax file upload sample</h1><br/><input id="uplaod" name="btn_send" type="button" value="上传测试"/> <div id=result></di

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

    php ajax无刷新上传图片与图片下载功能的实现代码如下所示: <meta charset="utf-8" > <form id= "uploadForm"> <p >指定文件名: <input type="text" name="filename" value= ""/></p > <p> 上传文件: <input type=

  • swfupload ajax无刷新上传图片实例代码

    最近自己做项目的时候需要添加一个功能,上传用户的图片,上传用户图片其实涉及到很多东西,不只是一个html标签<input id="File1" type="file" />或者asp.net封住好的FileUpload 控件,现在网站不再讲究的是功能性,更多的是用户体验性,在这里上传图片就需要用到ajax无刷新上传图片,这里面包含的东西不是一点半点.这里用到的是一个插件swfupload 实现无刷新上传图片.直接上传我的代码供大家参考. 前台代码区: 复

  • Android中Glide实现超简单的图片下载功能

    本文介绍了Glide实现超简单的图片下载功能,具体步骤如下: 添加依赖 compile 'com.github.bumptech.glide:glide:3.7.0' 添加权限 <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&

  • PHP+Ajax无刷新带进度条图片上传示例

    项目需求:1.PHP+Ajax无刷新带进度条图片上传,2.带进度条.所需插件:jquery.js,jquery.form.js. 最近在做一个手机web项目,需要用到Ajax上传功图片能,项目要求PHP无刷新上传图片,并且要带进度条,下面就来讲一下我的实现方法,先看效果图 本示例需要使用的是jquery.js,jquery.form.js,demo里面包含有,你可以在文章下方进行下载. 第一步,建立前端页面index.html 此段是前端展示内容,这里需要说明的是由于input:file标签显示

  • js实现头像图片切割缩放及无刷新上传图片的方法

    本文实例讲述了js实现头像图片切割缩放及无刷新上传图片的方法.分享给大家供大家参考.具体如下: fname:后台接收时用的名字, 必填 funstr:开始上传执行的函数, 默认无 funbak:上传成功后的回调函数, 必填 furl:上传地址: 默认当前form的提交页面 注意:上传地址和当前地址必须为同意域名否则回调函数获取不到 上传成功发回的地址.   a.php: $path='a.jpg'; move_uploaded_file($_FILES['uimg']['tmp_name'],$

  • localResizeIMG先压缩后使用ajax无刷新上传(移动端)

    下面通过文字说明和代码分析的方式给大家分享移动端图片上传之localResizeIMG先压缩后ajax无刷新上传,具体实现过程请看下文. 现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片压缩,然后再把压缩后的图片上传到服务器. 一翻google之后,发现了localResizeIMG,它会对图片进行压缩成你指定宽度及质量度并转换成base64图片

  • jQuery实现ajax无刷新分页页码控件

    这段时间在做公司项目的时候需要用到ajax进行分页(点击页码也是无刷新的显示上一页或下一页的内容,不是一般的选择跳转),但是在网上找了一下,大部分分页插件都是直接刷新跳转的,感觉和我的需求差距比较大,就自己动手写了一个可以实现自己需要的功能的js来实现这个控件,实现的效果如下: 因为业务需要,我需要在一个页面创建多个这样的页码控件(有些是在ajax中生成的),显然为每一个控件写一个专属的js是不现实的,所以,我将公共部分提取出来,然后通过传入的选择器不同,对不同的控件进行相应方法的调用. 下面是

  • asp.net中Timer无刷新定时器的实现方法

    本文实例讲述了asp.net中Timer无刷新定时器的实现方法.Timer控件要实现无刷新,得用到ajax技术,这里使用VS2008自带的ajax技术.    首先得添加一个ScriptManager控件,然后再添加一个UpdatePanel用于存放Timer控件内容的,就可以实现无刷新了.下面是详细的内容: 一.前台代码如下: <form id="form1" runat="server"> <asp:ScriptManager ID="

随机推荐