美文网首页前端
jQuery实现文件上传

jQuery实现文件上传

作者: 過尽千帆_YL | 来源:发表于2021-05-07 23:10 被阅读0次

1,定义UI结构

 <!-- 导入 jQuery -->
 <script src="./lib/jquery.js"></script>
 <!-- 文件选择框 -->
 <input type="file" id="file1" />
 <!-- 上传文件按钮 -->
 <button id="btnUpload">上传</button>

2,验证是否选择了文件

$('#btnUpload').on('click', function() {
     // 1. 将 jQuery 对象转化为 DOM 对象,并获取选中的文件列表
     var files = $('#file1')[0].files
     // 2. 判断是否选择了文件
     if (files.length <= 0) {
        return alert('请选择图片后再上传!‘)
     }
})

3,向FormData中追加文件

// 向 FormData 中追加文件
var fd = new FormData()
fd.append('avatar', files[0])

4,使用jQuery发起上传文件的请求

$.ajax({
     method: 'POST',
     url: 'http://www.liulongbin.top:3006/api/upload/avatar',
     data: fd,
     // 不修改 Content-Type 属性,使用 FormData 默认的 Content-Type 值
     contentType: false,
     // 不对 FormData 中的数据进行 url 编码,而是将 FormData 数据原样发送到服务器
     processData: false,
     success: function(res) {
        console.log(res)
     }
})

5,jQuery实现loading效果

5.1 ajaxStart(callback)

Ajax 请求开始时,执行 ajaxStart 函数。可以在 ajaxStart 的 callback 中显示 loading 效果,示例代码如下:

// 自 jQuery 版本 1.8 起,该方法只能被附加到文档
$(document).ajaxStart(function() {
    $('#loading').show()
})

注意: $(document).ajaxStart() 函数会监听当前文档内所有的 Ajax 请求.

5.2 ajaxStop(callback)

Ajax 请求结束时,执行 ajaxStop 函数。可以在 ajaxStop 的 callback 中隐藏 loading 效果,示例代码如下:

// 自 jQuery 版本 1.8 起,该方法只能被附加到文档
$(document).ajaxStop(function() {
    $('#loading').hide()
})

6,axios(⭐⭐⭐)

6.1 什么是axios

Axios 是专注于网络数据请求的库。

相比于原生的 XMLHttpRequest 对象,axios 简单易用。

相比于 jQuery,axios 更加轻量化,只专注于网络数据请求。

6.2 axios发起GET请求

axios 发起 get 请求的语法:

axios.get('url', { params: { /*参数*/ } }).then(callback)

具体的请求示例如下:

// 请求的 URL 地址
var url = 'http://www.liulongbin.top:3006/api/get'
// 请求的参数对象
var paramsObj = { name: 'zs', age: 20 }
// 调用 axios.get() 发起 GET 请求
axios.get(url, { params: paramsObj }).then(function(res) {
     // res.data 是服务器返回的数据
     var result = res.data
     console.log(res)
})

6.3 axios发起POST请求

axios 发起 post 请求的语法:

axios.post('url', { /*参数*/ }).then(callback)

具体的请求示例如下:

// 请求的 URL 地址
var url = 'http://www.liulongbin.top:3006/api/post'
// 要提交到服务器的数据
var dataObj = { location: '北京', address: '顺义' }
// 调用 axios.post() 发起 POST 请求
axios.post(url, dataObj).then(function(res) {
     // res.data 是服务器返回的数据
     var result = res.data
     console.log(result)
})

6.4 直接使用axios发起请求

axios 也提供了类似于 jQuery 中 $.ajax() 的函数,语法如下:

axios({
 method: '请求类型',
 url: '请求的URL地址',
 data: { /* POST数据 */ },
 params: { /* GET参数 */ }
}).then(callback)

发起get请求

document.querySelector('#btn3').addEventListener('click', function () {
      var url = 'http://www.liulongbin.top:3006/api/get'
      var paramsData = { name: '钢铁侠', age: 35 }
      axios({
        method: 'GET',
        url: url,
        params: paramsData
      }).then(function (res) {
        console.log(res.data)
      })
})

发起post请求

document.querySelector('#btn4').addEventListener('click', function () {
  axios({
    method: 'POST',
    url: 'http://www.liulongbin.top:3006/api/post',
    data: {
      name: '娃哈哈',
      age: 18,
      gender: '女'
    }
  }).then(function (res) {
    console.log(res.data)
  })
})

相关文章

  • jQuery实现文件上传

    1,定义UI结构 2,验证是否选择了文件 3,向FormData中追加文件 4,使用jQuery发起上传文件的请求...

  • Ajax无刷新图片插件使用

    无刷新文件上传 使用jquery插件plupload实现无刷新文件上传 官网: https://www.plupl...

  • jQuery Ajax上传文件

    模拟前台html页面 1.jQuery插件AjaxFileUpload用来实现ajax文件上传 2.通过jQuer...

  • 一种文件上传UI样式

    一种文件上传UI样式 基本 纯css实现, 依赖的jQuery也只是做简单的交互

  • 禁止用户拖拽图片或文件到窗口

    在做文件上传功能的时候,如果没有做响应用户拖拽文件的功能的话,建议先禁用拖拽功能。 实现代码: jquery版本(...

  • jquery 文件上传

  • django上传图片前后端实例

    相关阅读 JQuery Ajax使用FormData对象上传文件 图片 | CSDNDjango 图片上传、存储与...

  • 使用Spring boot + jQuery上传文件(kotli

    文件上传也是常见的功能,趁着周末,用Spring boot来实现一遍。 前端部分 前端使用jQuery,这部分并不...

  • php文件上传

    单文件上传实现: 文件上传代码参考:文件上传 多文件上传实现: 前台调用: shell方式 浏览器方式: 后台处理...

  • 网络03

    NSURLSession实现文件上传 实现文件上传的步骤 文件上传设置请求体的格式 使用NSURLSession上...

网友评论

    本文标题:jQuery实现文件上传

    本文链接:https://www.haomeiwen.com/subject/cekydltx.html