jquery上传组件的使用经验介绍

功能描述


组件使用

下面介绍一个上传附件的例子。
1.引入组件包,如图:

2.引入页面依赖的js、样式等
<script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript" src="plugs/jqupload/jquery.uploadify-3.1.js"></script>
<link rel="stylesheet" href="plugs/jqupload/uploadify.css"/>
3.js调用上传脚本
<script type="text/javascript">
jQuery(document).ready(function() {
  initAffixUpload();
});


var uploadfiles = null;
var affixInfoList = new Array();//已有附件的数组值
//初始化需求附件上传
function initAffixUpload(){
$("#upload_affix").uploadify({
auto  : false,
        height        : 20,
        swf           : 'plugs/jquery/jqupload/uploadify.swf',
        uploader      : 'plugs/jquery/jqupload/upload.jsp',
        width         : 80,
buttonText  : "选择上传文件",
fileTypeDesc  : "附件文件",
fileTypeExts  : "*.txt;*.doc;*.docx;*.xls;*.xlsx",
fileObjName  : "file",
queueSizeLimit: 5,
removeCompleted: true,
fileSizeLimit : 500,
onDialogOpen: function(){
uploadfiles = {};
},
onSelect: function(file){
uploadfiles[file.name.toLowerCase()] = true;
},
onUploadStart: function(){
if(typeof affixInfoList !='undefined' && affixInfoList.length>0){
for(var name in uploadfiles){
for(var affixname in affixInfoList){
if(name == affixInfoList[affixname]){
$("#upload_affix").uploadify("stop");
alert("文件["+name+"]已经被上传过,请重新选择!");
//$(".uploadify-queue-item").remove();
$(".uploadify-queue-item").each(function(index){
var fname = $(this).children(".fileName").html();
var fid = $(this).attr("id");
if(fname.indexOf(name) != "-1"){
$('#upload_affix').uploadify('cancel', fid);
}
});

uploadfiles = null;
break;
}
}

}
},
onQueueComplete: function(){
if(uploadfiles && uploadfiles!=null){
alert("上传成功!");
}
}
    });
//上传文件
$("#submit_affix").click(function(){
$("#upload_affix").uploadify("upload","*");
});
}
</script>
4.页面表单定义元素
 <p><div id="upload_affix"></div></p>
  <p><input type="button" id="submit_affix" value="上传" /></p>

运行效果


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
jQuery File Upload 是一个 jQuery 图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。 特征: 1、多文件上传: 允许一次选择多个文件并同时上传。 2、拖放支持: 允许通过从桌面或文件管理器中将文件拖放到浏览器窗口中来上传文件。 3、上载进度条: 显示一个进度条,指示单个文件和所有组合上载的上载进度。 4、可取消的上传: 可以取消单个文件的上传以停止上传进度。 5、可恢复的上传: 可以使用支持Blob API的浏览器恢复中止的上传。 6、批量上传: 大型文件可以使用支持Blob API的浏览器以较小的块上传。 7、客户端图像调整大小: 可以使用支持所需JS API的浏览器在客户端上自动调整图像大小。 8、预览图像,音频和视频: 使用支持所需API的浏览器上载之前,可以显示图像,音频和视频文件的预览。 9、无需浏览器插件(例如Adobe Flash): 该实现基于HTML5和JavaScript等开放标准,并且不需要其他浏览器插件。 10、旧版浏览器的优美回退: 如果支持,则通过XMLHttpRequests上传文件,并使用iframe作为旧版浏览器的回退。 11、HTML文件上传表单后备: 通过使用标准HTML文件上传表单作为小部件元素,可以逐步增强功能。 12、跨站点文件上传: 支持使用跨站点XMLHttpRequest或iframe重定向将文件上传到其他域。 13、多个插件实例: 允许在同一网页上使用多个插件实例。 14、可自定义和可扩展: 提供API来设置各个选项并为各种上传事件定义回调方法。 15、分段和文件内容流的上传: 可以将文件作为标准的“分段/表单数据”或文件内容流(HTTP PUT文件上传)进行上传。 16、与任何服务器端应用程序平台兼容: 支持标准HTML表单文件上传的任何服务器端平台(PHP,Python,Ruby on Rails,Java,Node.js,Go等)均可使用
### 回答1: Jquery是一款非常流行的JavaScript库,它可以简化Web开发中的很多任务。在文件上传方面,Jquery也提供了一些非常有用的功能。通常,我们使用Jquery的ajax方法来实现文件上传。以下是一个简单的示例: HTML代码: ```html <form id="myForm" enctype="multipart/form-data"> <input type="file" name="myFile"> <input type="button" value="Upload" onclick="uploadFile()"> </form> ``` JavaScript代码: ```javascript function uploadFile() { var formData = new FormData($("#myForm")[0]); $.ajax({ url: "/upload", type: "POST", data: formData, processData: false, contentType: false, success: function(response) { alert("File uploaded successfully!"); }, error: function(xhr, status, error) { alert("Error uploading file: " + xhr.responseText); } }); } ``` 在这个例子中,我们使用了HTML的表单来选择文件,并使用Jquery的FormData对象来创建一个包含文件数据的表单对象。然后我们使用ajax方法将表单数据发送到服务器。设置processData和contentType为false可以确保文件数据被正确地上传到服务器。成功或失败时,我们可以使用回调函数进行相应的处理。 ### 回答2: Jquery文件上传是一种使用Jquery框架来实现文件上传功能的方法。Jquery是一种流行的JavaScript库,它简化了JavaScript编程,提供了很多方便的API和函数,可以在客户端实现各种功能。 在Jquery文件上传中,我们可以使用Jquery的Ajax函数来实现异步上传文件。首先,我们需要先引入Jquery库文件,在HTML文件中添加一个文件上传按钮和一个显示上传进度的元素。 接下来,我们可以使用如下的代码来实现文件上传: ``` $("#uploadBtn").change(function() { // 获取上传的文件 var file = $("#uploadBtn")[0].files[0]; // 创建FormData对象 var formData = new FormData(); // 将文件添加到FormData对象中 formData.append("file", file); // 发送Ajax请求 $.ajax({ url: "upload.php", type: "POST", data: formData, processData: false, contentType: false, xhr: function() { var xhr = new window.XMLHttpRequest(); // 监听上传进度 xhr.upload.addEventListener("progress", function(event) { if (event.lengthComputable) { var percent = Math.round((event.loaded / event.total) * 100); $("#progress").html(percent + "%"); } }, false); return xhr; }, success: function(response) { // 上传成功后的处理 $("#result").html(response); } }); }); ``` 上述代码中,$("#uploadBtn")是文件上传按钮的ID,当文件选择后触发change事件。在事件处理函数中,我们首先获取选择的文件,然后创建一个FormData对象,并将文件添加到其中。接着,使用Ajax函数发送POST请求,并传递FormData对象作为参数。同时,通过xhr函数监听上传进度,并更新显示进度的元素。最后,通过success函数处理上传成功后的响应。 在服务器端,我们可以使用PHP等后端语言来接收文件并进行处理,然后返回相应的结果。 总之,使用Jquery文件上传可以简化文件上传的实现过程,并提供了更好的用户体验。 ### 回答3: Jquery 文件上传是一种使用Jquery库的功能,可以实现网页中文件上传的操作。通过引入Jquery库,我们可以方便地使用其提供的上传组件和方法来实现文件上传功能。 在实现文件上传之前,我们首先需要在网页中引入Jquery库。可以通过在HTML文件中的<head>标签中添加以下代码来引入Jquery库: <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> 引入Jquery库后,我们可以使用其中的$.ajax()方法来完成文件上传。$.ajax()方法是Jquery提供的用于发送异步请求的函数,我们可以在该方法中设置参数来实现文件上传功能。 以下是一个示例的Jquery文件上传代码: HTML部分: <input id="fileInput" type="file" name="file" /> Jquery部分: $('#fileInput').change(function() { var file = this.files[0]; var formData = new FormData(); formData.append('file', file); $.ajax({ url: 'upload.php', type: 'POST', data: formData, contentType: false, processData: false, success: function(response) { // 文件上传成功后的回调函数 console.log(response); alert('文件上传成功!'); }, error: function(jqXHR, textStatus, errorMessage) { // 文件上传失败后的回调函数 console.error(errorMessage); alert('文件上传失败!'); } }); }); 在以上代码中,首先使用$('#fileInput')来获取文件选择框的元素,并通过change事件绑定一个事件处理函数。在事件处理函数中,我们通过this.files[0]获取用户选择的文件,然后创建一个FormData对象,并将文件添加到其中。 接下来使用$.ajax()方法发送POST请求,将FormData作为data参数进行传递。需要注意的是,contentType参数设置为false,表示不设置请求头的Content-Type属性,而processData参数设置为false,表示不对数据进行处理。 当文件上传成功后,success回调函数将会被调用,并显示上传成功的提示信息。当文件上传失败时,error回调函数将会被调用,并显示上传失败的提示信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云焰

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值