AjaxFileUpload.js实现异步上传文件

ajaxupload.js ajaxupload.js ,ajax上传,具体用法可以自己查找教程。 ajaxupload.js ,ajax上传,具体用法可以自己查找教程。 立即下载

做软工作业时,需要实现无刷新异步上传图片到服务器,于是想利用Ajax:

得到file的val,再post过去…

等真正实现的时候才发现,根本行不通。

于是翻来翻去找到一个封装好的js插件,可以实现异步上传文件。

AjaxFileUpload

这个插件的原理是创建隐藏的表单和iframe,然后用JS去提交,获得返回值。

语法

$.ajaxFileUpload([options])

参数说明
url           上传处理程序地址。
fileElementId      需要上传的文件域的ID,即的ID。
secureuri        是否启用安全提交,默认为false。
dataType        服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
success        提交成功后自动执行的处理函数,参数data就是服务器返回的数据。
error          提交失败自动执行的处理函数。
data           自定义参数。这个东西比较有用,当有数据是与上传的图片相关的时候,这个东西就要用到了。
type           当要提交自定义参数时,这个参数要设置成post

食用方法

引入jQuery与ajaxFileUpload插件(由api中心强力提供)

<script type="text/javascript" src="https://api.mayuko.cn/js/jquery.min.js"></script>
<script type="text/javascript" src="https://api.mayuko.cn/js/ajaxfileupload.js"></script>

扩展HTML代码

<td height="52" class="inputContent" ><div align="center">附件1
<input type="file" name="upload_file" id="ss_upload_file1"></td>
<td colspan="3"><input type="button" name="Submit3" value="上 传" class="button" id="ss_file_upload"></td>

JS代码

$("#ss_file_upload").click(function(){ 
 $.ajaxFileUpload({
 url:'doajaxfileupload.php',//请求地址
 secureuri:false,//是否需要安全协议
 fileElementId:'ss_upload_file1',//file的ID
 dataType: 'text',//返回值类型,一般为json
 success: function(img_data1)//成功后执行
 {
 $(ss_file1_url).attr("value",img_data1);
 alert("上传成功");
 },
 error:function(img_data1,status,e){ 
 alert("上传失败"); 
 }
 })
})

PHP代码

后台就是进行上传操作啦,因为是课程设计所以我将图片上传到了七牛云存储中。

如何上传到七牛中=>上传图片到七牛云存储简单实例

<?php
//echo var_dump($_FILES);
//echo $_FILES['upload_file']['tmp_name'];
$file_infor = array("status"=>'',"url"=>'');
require_once("qiniu/io.php");
require_once("qiniu/rs.php");
$bucket = "";//你的bucket
$key1 = $_FILES["upload_file"]["name"] ;
$accessKey = '';//AK
$secretKey = '';//SK
Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);
$putExtra = new Qiniu_PutExtra();
$putExtra->Crc32 = 1;
list($ret, $err) = Qiniu_PutFile($upToken, $key1,$_FILES["upload_file"]["tmp_name"], $putExtra);
$url='bucket域名'.$key1;
if ($_FILES["upload_file"]["error"] > 0){
$file_infor["status"] = 'error';
}
else{
$file_infor["status"] = 'success';
$file_infor["url"] = $url;
}

echo $url;
?>

$_FILES是一个数组:

array (
‘upload_file’ =>
array (
‘name’ => ‘733626970332872971.jpg’,
‘type’ => ‘image/jpeg’,
‘tmp_name’ => ‘C:\\Windows\\Temp\\phpF203.tmp’,
‘error’ => 0,
‘size’ => 210744,
),
)

这样前台就可以接收到上传图片之后的url值并进行显示操作了。

一般来说,AjaxFileUpload的返回类型是json格式,可是在测试的时候前台一直无法解析json数据,所以无解之后就换成text数据了。

错误提示

1.Uncaught TypeError: Object function (a,b){return new e.fn.init(a,b,h)} has no method ‘handleError’

这是因为高版本的jQuery中取消了handleError方法,在ajaxfileupload.js中加入该方法就可以啦。 ;)

handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}

// Fire the global callback
if ( s.global ) {
(s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] );
}
}

2.success: function(data)中data为空值

应该是json数据的问题,我的解决方法是设置返回数据的类型是 text,用alert(data +”:” + data.length); 观察返回的数据是否有效。

3.一直跳转到error方法中

当执行if(type==”json”) eval(“data = “+data);会抛出异常,导致在处理异常的时候将status = “error” 因此一直执行error方法。

将ajaxfileupload.js中uploadHttpData: function( r, type ) 方法的 eval(“data = “+data+” “)改为 eval(“data = \” “+data+” \” “);

4.SyntaxError: syntax error错误

检查处理提交操作的服务器后台处理程序是否存在语法错误。

5.change第二次失效

绑定change事件,实现选择图片后自动上传,但是触发一次change事件后,下次就不会再触发change事件。

原因:由于ajaxFileUpload把原来的file元素替换成新的file元素,所以之前绑定的change事件就失效了。

解决方法:在 $.ajaxFileUpload({option})中的回调函数里 重新绑定change事件。

$("#upload_file").change(function(){  
    UploadImg();
});
UploadImg = function() {
    $(window).bind('beforeunload',function(){return '正在上传,确定离开此页面吗?';});
    $('#loading').attr('style','display:block;')
    $.ajaxFileUpload({
    url:'upload_ajax.php',
    secureuri:false,
    fileElementId:'upload_file',
    dataType: 'text',
    success: function(data)
    {
        $('#loading').attr('style','display:none;');
        if(data == 0){
            $("body").overhang({
            type: "error",
            message: "上传失败,CODE:00020"
            });
        }
        else if(data == 1){
            $("body").overhang({
            type: "success",
            message: "上传成功!"
            });
            setTimeout(function(){
                     window.location.reload(); 
            },1000);

        }

        else{
            $("body").overhang({
            type: "error",
            message: "格式错误,仅支持jpg,png,gif"
            });
        }
        $(window).unbind('beforeunload');
        $("#upload_file").change(function () {
             UploadImg();
        });

    },
    error:function(data,status,e){  
            $("body").overhang({
            type: "error",
            message: "上传失败,CODE:00031"
            });
    }
    })         
}
使用ajaxupload.js/ajaxfileupload.js实现文件上传 整个案例是使用ajaxupload.js/ajaxfileupload.js实现文件上传,清晰明了,供大家参考,谢谢!!! 立即下载

相关推荐

ajaxFileUpload.js

ajaxFileUpload插件在IE9中的bug(在IE9中不能上传)修复,将该js替换原来的ajaxFileUpload.js

ajaxupload.js java_Spring MVC 结合Ajax实现文件上传(使用ajaxfileupload.js)

本文地址:http://www.dutycode.com/post-6.html除非注明,文章均为 www.dutycode.com 原创,欢迎转载!转载请注明本文地址,谢谢。SpringMVC实现文件上传,直接上代码:后台代码:@RequestMapping(value = "/uploadApk")@ResponseBodypublic Object uploadApk(@RequestPar...

weixin_36355328的博客 203

ajaxfileupload.js文件

该js包是在官方下载的ajaxFileUpload.js基础上所做修改后的包,修改该包所要解决的问题包括: 1、浏览器上传文件后不刷新页面再次点击上传时后台接收不到文件的bug。 2、解决了ajaxFileUpload 报jQuery.handleError is not a function的bug。 3、解决了使用ajaxFileUpload除了上传文件外不能传递其他参数的bug。

java ajaxupload_Java中利用ajaxfileupload.js组件实现文件的上传功能

概要:在Java中,利用ajaxfileupload.js+commons-fileupload-1.3.1.jar 实现文件上传功能。关键字:Java,上传,ajaxfileupload,fileupload内容:进行Web方面的开发时,文件上传是经常会使用到的,所以如果能有一个简单、实用、性能良好的上传组件,我想是极好的,那么ajaxfileupload.js应该是个不错的选择,下面我就分享一...

weixin_28678151的博客 317

schrodinger 薛定谔

链接: https://pan.baidu.com/s/1Duh4GsoytIklvZp7TdHpWg 密码: wmr1 Linux系统版 进入 Schrodinger_Suites_2021-2_Linux-x86_64 sudo ./INSTALL 中间按默认的来即可,也可以自己调整安装目录。安装目录一定要记住。 安装完,把patcher 拷贝到安装目录 sudo ./patcher 点击Patch即可。 启动程序,进入安装目录 ./maestro ...

周迪新的博客 1万+

如何在n8n中高效调用playwright-mcp实现浏览器自动化(附避坑指南)

本文详细介绍了在n8n中高效集成playwright-mcp实现浏览器自动化的全流程指南,包括环境准备、工作流设计与优化、高级技巧与性能调优以及调试与问题排查。通过克服实际部署中的各种挑战,帮助用户打造稳定高效的自动化解决方案,特别适合需要浏览器自动化的工作流场景。

weixin_30379531的博客 388

文件上传ajaxFileUpload.js使用方法 包含后台接收方法

1.   引用ajaxfileupload.js文件,该文件依托于jquery,因此需要先引入jquery库。 2.  JSP页面编写方法。其中type为file的input框为了美观优化,是不显示,但是有用处的确实该部分。 因此,需要调整好text和button类型的高度和宽度,与file类型的input对应。 3.  CSS部分。file的宽度略大于txt和uploa

每天都在认真分享,期待您的关注 1万+

Python量化投资入门教程:从零构建你的第一个交易策略

量化投资教程以数学模型和计算机程序实现超额收益,选用Python工具链完成数据获取、策略构建及回测。通过移动平均线交叉策略示例,展示数据预处理、信号生成、收益计算及可视化全流程,结合收益率、最大回撤和夏普比率评估策略,并建议参数优化与策略融合提升稳健性。

ylmx5201314的博客 2457

java ajax多文件上传插件_ajaxFileUpload.js插件支持多文件上传的方法

前提条件:ajaxFileUpload.js插件多文件上传步骤:1、修改源码,(源码只支持单个文件的上传)://修改前代码-------//var oldElement = jQuery('#' + fileElementId);//var newElement = jQuery(oldElement).clone();//jQuery(oldElement).attr('id', fileId)...

weixin_31181381的博客 172

告别里程焦虑:手把手教你用MATLAB/Simulink仿真电动车AMT换挡规律(附代码)

本文详细介绍了如何使用MATLAB/Simulink仿真电动车AMT换挡规律,帮助解决里程焦虑问题。通过搭建完整的仿真系统,包括电机MAP图处理、Stateflow逻辑实现和动力性与经济性换挡曲线生成,优化电动车换挡策略以提升续航与性能。附带的代码示例和实用技巧使开发者能够快速上手并验证仿真结果。

weixin_26757925的博客 306

四大AI编程工具深度对比:Claude Code、Codex、OpenCode与WorkBuddy选型指南

AI编程助手正从代码补全走向自主执行的智能体形态,其核心原理是通过“规划-执行-观察”循环让模型自主完成文件修改、命令运行与错误修复。这类工具的技术价值在于提升长任务连续性与上下文理解能力,同时通过自定义指令与技能机制沉淀团队规范,适应不同工程场景。在实际选型中,开发者常面临终端CLI与图形化工作台、模型开放程度与绑定生态之间的权衡:Claude Code强调深度Agent体验,Codex支持灵活接入OpenAI兼容模型,OpenCode以开源多模型见长,WorkBuddy则提供全流程集成环境。本文基于真实

weixin_42526166的博客 137

使用ajaxfileupload.js实现上传文件功能

转载:一、ajaxFileUpload是一个异步上传文件的jQuery插件。语法:$.ajaxFileUpload([options])options参数说明:1、url           上传处理程序地址2、fileElementId       文件选择框的id属性,即&lt;input type="file"&gt;的id3、secureuri        是否启用安全提交,默认为fal...

菜鸟程序员成长路 8988

汇川Easy系列PLC系统PID指令编程应用(增量型)

增量式PIDS7-1200/1500增量式PID(输出归一化、支持PWM输出)_西门子1200pid算法公式-优快云博客文章浏览阅读1k次。本文介绍了S7-1200/1500 PLC中增量式PID算法的应用,包括输出归一化和PWM输出。通过详细解析,阐述了PID输出如何限制在0.0-1.0之间,并且如何将PID输出与PWM占空比关联,适用于温度等控制场景。

RXXW_Dor的博客 1426

SpringMVC结合ajaxfileupload.js实现异步上传文件

相比较提交表单实现文件上传,使用ajaxfileupload.js显得更加灵活 jsp代码:     //获取文件名称       function change(){         var filePath= $("#file").val();         if(filePath&&filePath!=""){         filePath=filePath.su

biaozhun90的博客 1056

EPLAN 电气制图(六):结构盒与设备管理器核心概念(基础知识选看)

结构盒是 EPLAN 中用于标识元件安装位置的逻辑容器,非实际设备或黑盒,仅用于原理图中划分功能区域或物理位置(如 “柜内”“柜外”)。标识符设置:在 “显示设备标识符” 中输入位置代号(如 “+ 柜外”),完整格式为 “= 高层代号 + 位置代号”;筛选与定位:通过 “筛选器” 按类别(如电机、接触器)快速查找设备,右键 “转到(图形)” 可高亮定位图纸中的元件;设备保护:重要设备可启用保护(【项目数据】→【设备】→【启用设备保护】),防止误删除(显示橙色圆圈标记)。

电工 1059

使用 Python 构建 Reddit 热帖爬虫:抓取热门讨论帖和评论

在现代互联网中,Reddit 被誉为全球最大、最活跃的讨论平台之一,汇聚了各种主题的帖子、评论和社交互动。因此,抓取 Reddit 上的热门帖子和评论可以为我们提供一个丰富的文本数据源,可以用于情感分析、话题建模、趋势分析等应用。Reddit 提供了官方的 API,可以让开发者获取包括帖子、评论、用户信息等在内的各种数据。我们可以结合上述方法,抓取多个热门帖子,并将每个帖子的标题、作者、发布时间和评论内容保存到一个数据结构中。每个帖子的对象包含了丰富的信息,如标题、内容、发布时间、作者等。

2201_76125261的博客 382

ajaxFileUpload.js 实现异步文件上传

使用iquery的插件ajaxFileUpload.js实现文件的异步上传。后台为java实现。

因为懂得的博客 3079

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

juqery 实现异步文件上传 ajaxfileupload.js

ajaxfileupload.js 异步上传文件: 直接引用。 调用方法: $.ajaxFileUpload({ url:'/balance/getMatchDetails', type: &amp;quot;post&amp;quot;, secureuri: false, //一般设置为false ...

傲子_的博客 1378

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

使用AjaxFileUpload.js实现文件异步上传

ajax是无法提交文件的,所以在上传图片并预览的时候,我们经常使用Ifame的方法实现看似异步的效果。但是这样总不是很方便的,AjaxFilleUpload.js对上面的方法进行了一个包装,使得我们不用去管理Iframe的一系列操作,也不用影响我们的页面结构,实现异步的文件提交。 html: js: $.ajaxFileUpload({ url:'${pag

会吃猫的鱼的专栏 1357

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ajaxfileupload.js类实现异步文件上传

ajaxFileUpload.js 很多同名的,因为做出来一个很容易。 我用的是这个:https://github.com/carlcarl/AjaxFileUpload 下载地址在这里:http://files.cnblogs.com/files/kissdodog/ajaxfileupload_JS_File.rar AjaxFileUpload.js并不是一个很出名的插件,...

aa545785的博客 91

ajaxfileupload.js实现文件异步上传

html中: var param = $("#inputForm").serialize(); url = $("#inputForm").attr("action"); $.ajaxFileUpload({ url: url, secureuri: false, fileElementId: 'biCardFile' dataType: 'json', success: functi

实践出真知 2166

asp.net ajax upload 多文件,c#、asp.net 基于ajaxfileupload.js 实现文件异步上传

前台代码:/*修改头像*///上传function _sc() {$(".ckfile").html("").css("color", "#535353");$("#_userImgPath").val("");var str = $("#file").val();if ($.trim(str) == "") {$(".ckfile").html("请选择文件。").css("color", "r...

weixin_29091445的博客 510

ajaxfileupload.js异步上传文件插件(完整demo)

ajaxfileupload.js异步上传文件插件HTML:<input type="file" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" name="photo" class="file" id="fileField" size="28" value="业务员ID"> <input type="button" value

猫老板的豆 1万+

php ajaxfileupload.js 使用,AjaxFileUpload.js实现异步上传文件功能

做软工作业时,需要实现无刷新异步上传图片到服务器,于是想利用Ajax:得到file的val,再post过去…等真正实现的时候才发现,根本行不通。于是翻来翻去找到一个封装好的js插件,可以实现异步上传文件。AjaxFileUpload这个插件的原理是创建隐藏的表单和iframe,然后用JS去提交,获得返回值。语法$.ajaxFileUpload([options])参数说明url          ...

weixin_39869043的博客 281

AjaxFileUpload实现文件异步上传(AjaxFileUpload.js文件下载及参数介绍)

AjaxFileUpload实现文件异步上传效果更好,使用简单:&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;&lt;/title&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt; &l

s343174147的博客 378

php jquery之ajax上传文件 ajaxfileupload.js

在用PHP上传文件时我们只能用$_FILES数组,如果我们只是单一的用JS方式取其ID,如..document.getElementById('img').value或者jquery形式的$("#img")都是不能正真实际上传的。 可是功能上又要要求实现所谓的“异步上传”,

鹏鹏博客 3051
上一篇: Python抓取网页内容
下一篇: Wordpress的钩子(hook)
Hades_Dev
博客等级 码龄14年 542粉丝 306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值