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 EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
jQuery遍历节点方法汇总(推荐)
May 13 jQuery
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
May 20 jQuery
jquery拖动改变div大小
Jul 04 jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 jQuery
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
jQuery选择器之表单元素选择器详解
Sep 19 jQuery
jQuery实现倒计时功能 jQuery实现计时器功能
Sep 19 jQuery
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 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
PHP5常用函数列表(分享)
2013/06/07 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
Javascript验证方法大全
2015/09/21 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
AngularJS 霸道的过滤器小结
2017/04/26 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
Python实现的rsa加密算法详解
2018/01/24 Python
Python反转序列的方法实例分析
2018/03/21 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
Python实现的knn算法示例
2018/06/14 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
Python列表list排列组合操作示例
2018/12/18 Python
Python画图高斯分布的示例
2019/07/10 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
网站编辑求职信
2013/10/17 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
redis限流的实际应用
2021/04/24 Redis