Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】


Posted in jQuery onMay 29, 2020

本文实例讲述了Jquery+AJAX实现无刷新上传并重命名文件操作。分享给大家供大家参考,具体如下:

index.html

<!DOCTYPE html>
<html>
<head>
  <title>Ajax上传图片</title>
  <meta charset="utf-8">
  <script src="https://www.jq22.com/jquery/jquery-3.3.1.js"></script>
</head>
<body>
  <h1>Ajax上传图片</h1>
  <!-- 表单 -->
  <form id="form" enctype="multipart/form-data">
    <input type="file" id="fileAttach" name="file"/>
    <input type="button" onclick="upload()" value="上传"/>
  </form>

  <!-- 显示结果 -->
  <h2 id="upload-result"></h2>

  <!-- 显示图片 -->
  <div id="imgdiv"></div>

  <!-- Ajax上传 -->
  <script>
    function upload(){
      var form = new FormData(document.getElementById("form"));
      $.ajax({
        url:"upload.php",
        type:"post",
        data:form,
        cache: false,
        processData: false,
        contentType: false,
        success:function(data){
          if (data.res == "400") {
            $("#upload-result").text("上传成功");
            $("#imgdiv").html("<img src=\"upload/"+data.path+"\"/>");
          }else if (data.res == "403") {
            $("#upload-result").text("格式不对");
          }else if (data.res == "404") {
            $("#upload-result").text("上传错误");
          }
          
        },
        error:function(data){
          alert("上传失败")
        }
      })
    }
  </script>
</body>
</html>

upload.php

<?php
header("Content-type:application/json");
 
//获取原始文件名
$filename = $_FILES["file"]["name"];
 
//获取文件后缀名
$hzm = substr($filename,strpos($filename,"."));
 
//设置新文件名
$newfilename = substr(str_shuffle("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"),26,10);
 
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $filename);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 2048000)  // 小于 2000 kb
&& in_array($extension, $allowedExts))
{
  if ($_FILES["file"]["error"] > 0)
  {
    echo "{\"res\":\"404\"}";
  }
  else
  {
  // 此处可以输出文件的详细信息
  if (file_exists("upload/" . $newfilename.$hzm))
    {
      //
    }
    else
    {
      move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $newfilename.$hzm);
      echo "{\"path\":\"$newfilename$hzm\",\"res\":\"400\"}";
    }
  }
}
else
{
  echo "{\"res\":\"403\"}";
}
?>

请在当前目录建立upload文件夹用于存放上传后的图片

GiF Demo

Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】

更多关于jQuery相关内容可查看本站专题:《jquery中Ajax用法总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery常见经典特效汇总》及《jquery选择器用法总结》

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
基于jQuery和CSS3实现APPLE TV海报视差效果
Jun 16 jQuery
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 jQuery
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
Jquery实现获取子元素的方法分析
Aug 24 jQuery
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
jQuery实现简单全选框
Sep 13 jQuery
jquery实现穿梭框功能
Jan 19 jQuery
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 #jQuery
Jquery高级应用Deferred对象原理及使用实例
May 28 #jQuery
JQuery插件tablesorter表格排序实现过程解析
May 28 #jQuery
jQuery实现鼠标滑动切换图片
May 27 #jQuery
jQuery弹框插件使用方法详解
May 26 #jQuery
jQuery实现的分页插件完整示例
May 26 #jQuery
jQuery 选择器用法实例分析【prev + next】
May 22 #jQuery
You might like
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
php pdo操作数据库示例
2017/03/10 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
非常好的js代码
2006/06/27 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
八大排序算法的Python实现
2021/01/28 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
python中K-means算法基础知识点
2021/01/25 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
幼儿园教师工作感言
2014/02/15 职场文书
聚美优品广告词改编
2014/03/14 职场文书
读群众路线的心得体会
2014/09/03 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
2014年图书室工作总结
2014/12/09 职场文书
首次购房证明
2015/06/19 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
基于Python实现一个春节倒计时脚本
2022/01/22 Python
python对文档中元素删除,替换操作
2022/04/02 Python
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android