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插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
基于jquery的on和click的区别详解
Jan 15 jQuery
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
jQuery 查找元素操作实例小结
Oct 02 jQuery
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 jQuery
jQuery实现移动端扭蛋机抽奖
Nov 08 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 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
php实现jQuery扩展函数
2009/10/30 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
Using the TextRange Object
2006/10/14 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
详解python中eval函数的作用
2019/10/22 Python
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
实习报告评语
2014/04/26 职场文书
学生保证书范文
2014/04/28 职场文书
2014年冬季防火方案
2014/05/21 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
小学领导班子对照材料
2014/08/23 职场文书
受伤赔偿协议书
2014/09/24 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
中学生打架检讨书
2014/10/13 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
实习护士自荐信
2015/03/25 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
maven依赖的version声明控制方式
2022/01/18 Java/Android
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技