Rumah hujung hadapan web tutorial js FormData+Ajax实现上传进度监控

FormData+Ajax实现上传进度监控

May 22, 2018 am 09:50 AM
pantau jadual

FormData类型其实是在XMLHttpRequest 2级定义的,它是为序列化表以及创建与表单格式相同的数据(当然是用于XHR传输)提供便利。接下来通过本文给大家分享FormData+Ajax实现上传进度监控,需要的朋友一起看看吧

什么是FormData?

FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对。它可以更灵活方便的发送表单数据,因为可以独立于表单使用。如果你把表单的编码类型设置为multipart/form-data ,则通过FormData传输的数据格式和表单通过submit() 方法传输的数据格式相同;

如何创建一个FormData对象

你可以自己创建一个FormData对象,然后通过调用它的append()方法添加字段,就像这样:

//实例化一个formData对象
var formData = new FormData();
formData.append("username", "Groucho");
formData.append("userid", 123456); // 数字 123456 会被立即转换成字符串 "123456"
// HTML上的 文件类型input[type=file]的文件框,由用户选择
formData.append("userfile", fileInputElement.files[0]);
// JavaScript file-like 对象
var content = &#39;<a id="a"><b id="b">hey!</b></a>&#39;; // 新文件的正文...
var blob = new Blob([content], { type: "text/xml"});
formData.append("webmasterfile", blob);
Salin selepas log masuk

注意:字段 “userfile” 和 “webmasterfile” 都包含一个文件. 字段 “userid” 是数字类型,它将被FormData.append()方法转换成字符串类型(FormData 对象的字段类型可以是 Blob, File, 或者 string: 如果它的字段类型不是Blob也不是File,则会被转换成字符串类型。

使用jQuery的Ajax方法发送FormData数据

//记录当前时间
var time=new Date().getTime();
//记录当前进度
var percentage =null;
//记录当前上传速度
var velocity=null;
//记录已上传文件字节大小
var loaded=0;
$.ajax({
 url: &#39;Url&#39;,
 type: "POST",
 data: formData,
 contentType: false, // 必须 不设置内容类型
 processData: false, // 必须 不处理数据
 xhr: function xhr() {
  //获取原生的xhr对象
  var xhr = $.ajaxSettings.xhr();
  if (xhr.upload) {
   //添加 progress 事件监听
   xhr.upload.addEventListener(&#39;progress&#39;, function (e) {
    var nowDate = new Date().getTime();
    //每一秒刷新一次状态
    if (nowDate - time >= 1000) {
     //已上传文件字节数/总字节数
     percentage = parseInt(e.loaded / e.total * 100);
     //当前已传大小(字节数)-一秒前已传文件大小(字节数)
     velocity = (e.loaded - loaded) / 1024;
     if (percentage >= 99) {
      $(".hintText").html(&#39;服务端正在解析,请稍后&#39;);
     } else {
      //修改上次记录时间及数据大小
      time = nowDate;
      loaded = e.loaded;
     }
    } else {
     return;
    }
   }, false);
  }
  return xhr;
 },
 success: function success(response) {
  //成功回调   
 },
 error: function error(error) {
  //失败回调    
 }
});
Salin selepas log masuk

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

ajaxfileupload.js实现文件上传(附步骤代码)

php获取ajax的headers方法与内容实例

ajaxfileupload.js实现文件上传(附步骤代码)

Atas ialah kandungan terperinci FormData+Ajax实现上传进度监控. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Berapa lama pemantauan rumah biasanya disimpan? Berapa lama pemantauan rumah biasanya disimpan? Aug 30, 2023 pm 04:44 PM

Pemantauan di rumah biasanya disimpan selama satu hingga dua minggu. Pengenalan terperinci: 1. Lebih besar kapasiti penyimpanan, lebih lama video boleh disimpan 2. Lebih besar kapasiti cakera keras, lebih lama video boleh disimpan 3. Mengikut keperluan kawasan dan undang-undang yang berbeza; peraturan, bilangan video pengawasan Masa penyimpanan mungkin berbeza-beza; 4. Sesetengah sistem pengawasan lanjutan juga boleh mencetuskan rakaman berdasarkan pengesanan gerakan atau peristiwa tertentu, dengan itu menjimatkan ruang storan dan menyediakan rakaman yang lebih berguna.

Skrip Python untuk memantau perubahan tapak web Skrip Python untuk memantau perubahan tapak web Aug 29, 2023 pm 12:25 PM

Dalam era digital hari ini, mengetahui perubahan terkini pada tapak web anda adalah penting untuk pelbagai tujuan, seperti menjejak kemas kini pada tapak web pesaing anda, memantau ketersediaan produk atau sentiasa dimaklumkan tentang maklumat penting. Semakan tapak web anda secara manual untuk perubahan boleh memakan masa dan tidak cekap. Di sinilah automasi dimainkan. Dalam catatan blog ini, kami akan meneroka cara membuat skrip Python untuk memantau perubahan tapak web. Dengan memanfaatkan kuasa Python dan beberapa perpustakaan berguna, kami boleh mengautomasikan proses mendapatkan semula kandungan tapak web, membandingkannya dengan versi sebelumnya dan memberitahu kami tentang sebarang perubahan. Ini membolehkan kami kekal proaktif dan bertindak balas segera terhadap kemas kini atau pengubahsuaian pada tapak yang kami pantau. Menyediakan persekitaran Sebelum kita mula menulis skrip untuk memantau perubahan tapak web, kita perlu menyediakan P

Bagaimana untuk melaksanakan pengelogan dan pemantauan permintaan dalam FastAPI Bagaimana untuk melaksanakan pengelogan dan pemantauan permintaan dalam FastAPI Jul 30, 2023 am 08:29 AM

Cara melaksanakan pengelogan dan pemantauan permintaan dalam FastAPI Pengenalan: FastAPI ialah rangka kerja web berprestasi tinggi berdasarkan Python3.7+ Ia menyediakan banyak fungsi dan ciri yang berkuasa, termasuk pengesahan model permintaan dan respons automatik, keselamatan dan pengoptimuman prestasi. Dalam pembangunan sebenar, kita sering perlu merekodkan log permintaan dalam aplikasi untuk analisis penyahpepijatan dan pemantauan. Artikel ini akan memperkenalkan cara melaksanakan pengelogan dan pemantauan permintaan dalam FastAPI dan menyediakan contoh kod yang sepadan. 1. Pemasangan

Bagaimana untuk membuka foto dari kamera pengawasan dalam win10 Bagaimana untuk membuka foto dari kamera pengawasan dalam win10 Jul 10, 2023 pm 09:41 PM

Jika kita tidak mempunyai telefon bimbit di tangan, hanya komputer, tetapi kita perlu mengambil gambar, kita boleh menggunakan kamera pengawasan terbina dalam komputer untuk mengambil gambar, jadi bagaimana untuk menghidupkan kamera pengawasan win10, sebenarnya, kami hanya perlu memuat turun aplikasi kamera. Kaedah khusus untuk membuka kamera pengawasan win10. Cara membuka foto dari kamera pengawasan win10: 1. Pertama, gunakan kekunci pintasan cakera Win+i untuk membuka tetapan. 2. Selepas dibuka, masukkan tetapan privasi peribadi. 3. Kemudian hidupkan sekatan akses di bawah kebenaran telefon kamera. 4. Setelah dibuka, anda hanya perlu membuka perisian aplikasi kamera. (Jika tidak, anda boleh pergi ke kedai Microsoft untuk memuat turun satu) 5. Selepas dibuka, jika komputer mempunyai kamera pengawasan terbina dalam atau kamera pengawasan luaran dipasang, anda boleh mengambil gambar. (Kerana orang ramai tidak memasang kamera

Pemantauan dan analisis log masa nyata di bawah Linux Pemantauan dan analisis log masa nyata di bawah Linux Jul 29, 2023 am 08:06 AM

Pemantauan dan analisis log masa nyata di bawah Linux Dalam pengurusan sistem harian dan penyelesaian masalah, log ialah sumber data yang sangat penting. Melalui pemantauan masa nyata dan analisis log sistem, kami boleh mengesan situasi tidak normal dalam masa dan mengendalikannya dengan sewajarnya. Artikel ini akan memperkenalkan cara melaksanakan pemantauan dan analisis log masa nyata di bawah Linux, dan memberikan contoh kod yang sepadan. 1. Pemantauan log masa nyata Di bawah Linux, sistem log yang paling biasa digunakan ialah rsyslog. Dengan mengkonfigurasi rsyslog, kami boleh menggabungkan log aplikasi yang berbeza

Ralat pemantauan Laravel: meningkatkan kestabilan aplikasi Ralat pemantauan Laravel: meningkatkan kestabilan aplikasi Mar 06, 2024 pm 04:48 PM

Memantau ralat dalam Laravel adalah bahagian penting dalam meningkatkan kestabilan aplikasi. Semasa proses pembangunan, pelbagai ralat pasti akan dihadapi, dan cara untuk mengesan dan menyelesaikan ralat ini tepat pada masanya adalah salah satu kunci untuk memastikan operasi normal aplikasi. Laravel menyediakan pelbagai alatan dan fungsi untuk membantu pembangun memantau dan mengendalikan ralat Artikel ini akan memperkenalkan beberapa kaedah penting dan melampirkan contoh kod tertentu. 1. Gunakan pembalakan Pembalakan adalah salah satu cara penting untuk memantau ralat. Laravel mempunyai sistem pembalakan yang berkuasa terbina dalam, pembangun

Nasihat Pembangunan C#: Sistem Pembalakan dan Pemantauan Nasihat Pembangunan C#: Sistem Pembalakan dan Pemantauan Nov 22, 2023 pm 08:30 PM

Cadangan Pembangunan C#: Sistem Pembalakan dan Pemantauan Ringkasan: Dalam proses pembangunan perisian, sistem pembalakan dan pemantauan adalah alat penting. Artikel ini akan memperkenalkan peranan dan cadangan pelaksanaan sistem pembalakan dan pemantauan dalam pembangunan C#. Pengenalan: Pembalakan dan pemantauan adalah alat penting dalam projek pembangunan perisian berskala besar. Mereka boleh membantu kami memahami status berjalan program dalam masa nyata dan menemui serta menyelesaikan masalah dengan cepat. Artikel ini akan membincangkan cara menggunakan sistem pengelogan dan pemantauan dalam pembangunan C# untuk meningkatkan kualiti perisian dan kecekapan pembangunan. Peranan sistem pembalakan

Cara menggunakan Docker untuk pemantauan kontena dan analisis prestasi Cara menggunakan Docker untuk pemantauan kontena dan analisis prestasi Nov 08, 2023 am 09:54 AM

Gambaran keseluruhan cara menggunakan Docker untuk pemantauan kontena dan analisis prestasi: Docker ialah platform kontena popular yang membenarkan aplikasi dijalankan dalam bekas bebas dengan mengasingkan aplikasi dan pakej perisian bergantungnya. Walau bagaimanapun, apabila bilangan kontena bertambah, pemantauan kontena dan analisis prestasi menjadi semakin penting. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Docker untuk pemantauan kontena dan analisis prestasi, dan menyediakan beberapa contoh kod khusus. Gunakan alat pemantauan kontena Docker sendiri yang disediakan oleh Docker

See all articles