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 相关文章推荐
原生Aajax 和jQuery Ajax 写法个人总结
Mar 24 jQuery
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
jQuery实现html双向绑定功能示例
Oct 09 jQuery
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
jquery 获取索引值在一定范围的列表方法
Jan 25 jQuery
jQuery实现上下滚动公告栏详细代码
Nov 21 jQuery
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
jquery css实现流程进度条
Mar 26 jQuery
jQuery实现异步上传一个或多个文件
Aug 17 jQuery
jquery实现拖拽添加元素功能
Dec 01 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中的实现trim函数代码
2007/03/19 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
js+xml生成级联下拉框代码
2012/07/24 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
React进阶学习之组件的解耦之道
2017/08/07 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
vue.js todolist实现代码
2017/10/29 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
python进阶教程之模块(module)介绍
2014/08/30 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
大专自我鉴定范文
2013/10/01 职场文书
音乐器材管理制度
2014/01/31 职场文书
质量月活动策划方案
2014/03/10 职场文书
简单通用的简历自我评价
2014/09/21 职场文书
房屋租赁协议书
2014/10/18 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
一年级语文教学随笔
2015/08/14 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
话题作文之诚信
2019/11/28 职场文书
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js