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实现提示语淡入效果
May 05 jQuery
基于jQuery Easyui实现登陆框界面
Jul 10 jQuery
jQuery:unbind方法的使用详解
Aug 14 jQuery
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 jQuery
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
jquery 实现拖动文件上传加载进度条功能
Mar 18 jQuery
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
jQuery.validate.js表单验证插件的使用代码详解
Oct 22 jQuery
使用jquery模拟a标签的click事件无法实现跳转的解决
Dec 04 jQuery
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
jquery检测上传文件大小示例
Apr 26 jQuery
jquery绑定事件 bind和on的用法与区别分析
May 22 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 SQLite类
2009/05/07 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
Javascript中String的常用方法实例分析
2015/06/13 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
[01:28]一分钟告诉你DOTA2 TI9不朽宝藏Ⅱ中有什么!
2019/07/09 DOTA
python绘制简单折线图代码示例
2017/12/19 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python字典排序的方法
2019/10/12 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
大学生应聘推荐信范文
2013/11/19 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
2014年纪检工作总结
2014/11/12 职场文书
硕士学位论文评语
2014/12/31 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
Win11 BitLocker 驱动器加密
2022/04/19 数码科技
MySQL数据管理操作示例讲解
2022/12/24 MySQL