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 相关文章推荐
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
jQuery实现键盘回车搜索功能
Jul 25 jQuery
基于jQuery实现的单行公告活动轮播效果
Aug 23 jQuery
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
jQuery实现的中英文切换功能示例
Jan 11 jQuery
jQuery对底部导航进行跳转并高亮显示的实例代码
Apr 23 jQuery
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
jQuery实现简单评论功能
Aug 19 jQuery
jQuery实现推拉门效果
Oct 19 jQuery
Jquery+javascript实现支付网页数字键盘
Dec 21 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
基于mysql的bbs设计(二)
2006/10/09 PHP
TP5.0框架实现无限极回复功能的方法分析
2019/05/04 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
JQuery 实现的页面滚动时浮动窗口控件
2009/07/10 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
AngularJs验证重复密码的方法(两种)
2016/11/25 Javascript
layui表格实现代码
2017/05/20 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
详解python多线程之间的同步(一)
2019/04/03 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
Python requests接口测试实现代码
2020/09/08 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
电信专业应届生自荐信
2013/09/28 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
公司副总经理任命书
2014/06/05 职场文书
中国世界遗产导游词
2015/02/13 职场文书
消防演习感想
2015/08/10 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
mysql数据库入门第一步之创建表
2021/05/14 MySQL
Oracle中update和select 关联操作
2022/01/18 Oracle
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers