返回顶部
首页 > 资讯 > 精选 >Ajax和form+iframe怎么实现文件上传
  • 179
分享到

Ajax和form+iframe怎么实现文件上传

2023-06-08 08:06:52 179人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关ajax和fORM+iframe怎么实现文件上传,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HTML5Ajax上传HTML5的上传实现,是需要file控件以及XMLHttpR

这篇文章将为大家详细讲解有关ajax和fORM+iframe怎么实现文件上传,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

HTML5Ajax上传

HTML5的上传实现,是需要file控件以及XMLHttpRequest请求。下面是我封装的一个上传插件

function fileUpload(options) {var opts = options || {};var func = function() {};this.fileInput = opts.fileInput || null;this.url = opts.url || '';this.fileList = [];this.onFilter = opts.onFilter || function(f) {return f;}; //选择文件组的过滤方法this.onSelect = opts.onSelect || func; //文件选择后this.onProgress = opts.onProgress || func; //文件上传进度this.onSuccess = opts.onSuccess || func; //文件上传成功时this.onFailure = opts.onFailure || func; //文件上传失败时;this.onComplete = opts.onComplete || func; //文件全部上传完毕时this.init();}fileUpload.prototype = {dealFiles: function(e) { //获取要上传的文件数组(用户选择文件后执行)var files = e.target.files || e.dataTransfer.files;this.fileList = this.onFilter(files);for(var i = 0, file; file = this.fileList[i]; i++){ //增加唯一索引值file.index = i;}this.onSelect(this.fileList);return this;},removeFile: function(fileDelete) { //删除某一个文件var arrFile = [];for(var i = 0, file; file = this.fileList[i]; i++){if (file != fileDelete) {arrFile.push(file);}}this.fileList = arrFile;return this;},removeAll: function() { //清空文件队列this.fileList = [];return this;},uploadFile: function() { //上传文件var me = this;for(var i = 0, file; file = this.fileList[i]; i++){(function(file) {var formData = new FormData();var xhr = new XMLHttpRequest();if (xhr.upload) {xhr.upload.addEventListener("progress", function(e) { // 上传中me.onProgress(file, e.loaded, e.total);}, false);xhr.onreadystatechange = function(e) { // 文件上传成功或是失败if (xhr.readyState == 4) {if (xhr.status == 200) {me.onSuccess(file, xhr.responseText);me.removeFile(file);if (!me.fileList.length) {me.onComplete(); //上传全部完毕。执行回调}} else {me.onFailure(file, xhr.responseText);}}};// 开始上传formData.append('file', file);xhr.open("POST", me.url, true);xhr.send(formData);}})(file);}},init: function() {var me = this;//文件选择控件选择if (me.fileInput) {me.fileInput.addEventListener("change", function(e) { me.dealFiles(e); }, false);}}};

相信大家也看到了,代码中出现了formData,这就是html5的神奇之处了。借助formData轻松实现异步无刷新支持预览图片的多文件上传功能。而且,令人欣慰的是,现在已经有很多浏览器都已经支持html5了。

但是!!!ie9以下的版本不支持呀!!

除此之外,上面的方法还有一个弊端,因为使用了ajax的上传方式,所以不能支持跨域上传,如果必须要满足这两个业务场景,那就试试下面的方法吧,借助form和iframe来实现上传。下面来详细看一下:

form表单提交到iframe

html代码:

<iframe name="demoIframe" ></iframe><form target="demoIframe" action="upload.PHP" method="post" enctype="multipart/form-data"><input class="filename" type="file" name="fileLabel"><input type="submit" value="提交"></form>

我们点击提交,可以看到下面的请求:

Ajax和form+iframe怎么实现文件上传

已经把文件上传。那么,加入这个upload.php接口可用,而且假如上传成功后,会返回:

{"code": "200","success": true,"data": {...}}

我们要怎么去获取返回值,从而进行下一步的操作呢?因为我们是上传到了iframe中,所以我们只需要监听iframe的load事件,如果有返回值了,我们就能获取到,从而进行进一步处理。看js代码:

$('iframe').on('load', function() {var responseText = $('iframe')[0].contentDocument.body.textContent;var responseData = JSON.parse(responseText) || {};if (responseData.isSuccess == true || responseData.code == 200) {//success} else {//error }});

关于“Ajax和form+iframe怎么实现文件上传”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Ajax和form+iframe怎么实现文件上传

本文链接: https://lsjlt.com/news/252827.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Ajax和form+iframe怎么实现文件上传
    这篇文章将为大家详细讲解有关Ajax和form+iframe怎么实现文件上传,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HTML5Ajax上传html5的上传实现,是需要file控件以及XMLHttpR...
    99+
    2023-06-08
  • iframe中怎么实现Ajax文件上传效果
    本篇文章为大家展示了iframe中怎么实现Ajax文件上传效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。复制代码 代码如下:<span >avasc...
    99+
    2024-04-02
  • 原生ajax和iframe框架如何实现图片文件上传
    这篇文章主要为大家展示了“原生ajax和iframe框架如何实现图片文件上传”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“原生ajax和iframe框架如何实现...
    99+
    2024-04-02
  • jquery中Form怎么实现文件上传
    这篇文章给大家分享的是有关jquery中Form怎么实现文件上传的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。①先是html<a href="javas...
    99+
    2024-04-02
  • java form-data上传文件怎么实现
    在Java中,可以使用Apache HttpClient库来实现form-data形式的文件上传。下面是一个简单的示例代码: imp...
    99+
    2023-10-30
    java
  • Ajax如何实现提交Form表单及文件上传
    这篇文章主要为大家展示了“Ajax如何实现提交Form表单及文件上传”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ajax如何实现提交Form表单及文件上传”这...
    99+
    2024-04-02
  • Ajax怎么实现文件上传功能
    这篇文章主要介绍“Ajax怎么实现文件上传功能”,在日常操作中,相信很多人在Ajax怎么实现文件上传功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ajax怎么实现文件上传...
    99+
    2024-04-02
  • struts1和jquery form如何实现文件异步上传
    这篇文章主要介绍struts1和jquery form如何实现文件异步上传,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.概述还在用struts1?是的,在地球的没写地方,落后的生...
    99+
    2024-04-02
  • 使用AJAX实现上传文件
    本文实例为大家分享了使用AJAX实现上传文件的具体代码,供大家参考,具体内容如下 需求: 在前端页面选择文件上传到服务器的指定位置 前端代码 <form id="upl...
    99+
    2024-04-02
  • Java发送form-data请求怎么实现文件上传
    这篇“Java发送form-data请求怎么实现文件上传”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java发送form-...
    99+
    2023-07-02
  • HTML5+Ajax文件上传进度条怎么实现
    这篇文章主要介绍了HTML5+Ajax文件上传进度条怎么实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。原本打算使用jquery插件进行异...
    99+
    2024-04-02
  • 使用jquery和ajax怎么上传文件
    本篇文章为大家展示了使用jquery和ajax怎么上传文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是ajaxajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术,可以通过在...
    99+
    2023-06-08
  • nodejs 实现模拟form表单上传文件
    以前项目里有这个方法,最近在客户那里出问题了,同事说,这个方法从来就没管用过,SO,用了一天时间把这个方法给搞出来了(觉得花费的时间长了点),分享之。 代码及测试用例: var http = requi...
    99+
    2022-06-04
    表单 上传文件 nodejs
  • MVC中怎么基于Ajax和HTML5实现文件上传功能
    这篇文章主要讲解了“MVC中怎么基于Ajax和HTML5实现文件上传功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MVC中怎么基于Ajax和HTML5实...
    99+
    2024-04-02
  • Ajax中怎么实现文件上传带进度条
    这篇文章将为大家详细讲解有关Ajax中怎么实现文件上传带进度条,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。(1)创建上传对象在应该Common-FileU...
    99+
    2024-04-02
  • Java发送form-data请求实现文件上传
    如何使用Java发送form-data格式的请求上传multipart文件,供大家参考,具体内容如下 封装了以下工具类: package com.leeyaonan.clinkz.c...
    99+
    2024-04-02
  • python + request实现multipart/form-data请求上传文件
    1、multipart/form-data介绍         multipart/form-data 是 HTTP 协议中用于上传文件的一种类型。它允许客户端向服务器发送文件以及一些额外的元数据(例如文件名、MIME 类型、图片等)。这种...
    99+
    2023-09-16
    python http
  • Ajax如何实现异步上传文件
    这篇文章将为大家详细讲解有关Ajax如何实现异步上传文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体代码如下所示:<!DOCTYPE html>...
    99+
    2024-04-02
  • 如何使用 Golang 实现 Form 表单文件上传?
    go 语言使用 form 表单实现文件上传包括以下步骤:在 html 中设置 enctype="multipart/form-data" 属性,创建表单。在 go 中使用 r.parse...
    99+
    2024-05-13
    文件上传 golang
  • ajax怎么实现异步文件或图片上传功能
    这篇文章主要介绍ajax怎么实现异步文件或图片上传功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!大家好,这篇文章我要给大家分享一个网页文件上传功能的代码,希望大家可以有所参考,或者给我提些建议。众所周知现在的各大...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作