关于上传插件uploadify使用问题
来源:互联网 发布:淘宝会员哪几种 编辑:程序博客网 时间:2024/06/10 10:20
uploadify上传插件官网例子为PHP,但是java使用同样无碍。
主要使用文件为js,css,swf,以及一个uploadify-cancel.png的图片,使用时的常用参数设置为:
<span style="white-space:pre"></span><input type="file" name="file_upload" id="file_upload_1" />
<pre name="code" class="javascript">$("#file_upload_1").uploadify({"auto":true,//自动上传"height" : 20,"fileObjName" : "imgFile",//文件上传对象的名称"swf" : "${ctx}/uploadify/uploadify.swf",//uploadify.swf 文件的相对路径。"uploader" : "${ctx}/bgAdmin/breed/upload",//后台处理程序的相对路径。"width" : 100,"multi":false,//设置为true时可以上传多个文件。"buttonImage": "${ctx}/uploadify/browse-btn.png",//浏览按钮的图片的路径 。"fileTypeDesc" : "Image Files",//这个属性值必须设置fileTypeExts属性后才有效,用来设置选择文件对话框中的提示文本 <span style="white-space:pre"></span>"fileTypeExts" : "*.gif; *.jpg; *.png",//设置可以选择的文件的类型 <span style="white-space:pre"></span>"buttonText":"请选择文件",//浏览按钮的文本。"onUploadComplete" : function(file) {//每个文件上传完毕后无论成功与否都会触发。 <span style="white-space:pre"></span>//alert("Flash was not detected."+file.name); <span style="white-space:pre"></span>}, <span style="white-space:pre"></span>"onUploadSuccess" : function(file,data,response){//当文件上传成功时触发 <span style="white-space:pre"></span>var obj = jQuery.parseJSON(data); <span style="white-space:pre"></span>if(obj.error == "0"){ <span style="white-space:pre"></span>$("#breedImg").attr("src","${ctx}/"+obj.url); <span style="white-space:pre"></span>$("#breedImgHidden").val(obj.url); <span style="white-space:pre"></span>} <span style="white-space:pre"></span>}});
uploadify插件使用时注意事项(主要针对3.2,3.1版本,其他版本未测试)
1.uploadify 3.1 /3.2进入页面请求两次问题解决办法。
最近在做MVC项目的时候有用到 uploadify,但是在进入页面的时候会有请求两次的问题,明显为js方法初始化时部分参数未设置或js代码本身BUG
具体解决方法是(js文件中,原因为settings.upload_url未设置,但是文件中并未对未设置的情况进行处理):
this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url)
改为
this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);this.settings.button_image_url = this.settings.button_image_url ? SWFUpload.completeURL(this.settings.button_image_url) : this.settings.button_image_url
在使用测试时,发现在谷歌浏览器测试总是会出现页面崩溃。
解决的办法是: 给引入的js加上一个参数,时间戳就可以,防止缓存,使每一次都请求。(这个问题是因为谷歌浏览器会缓存文件导致的)
<script type="text/javascript" src="../common/uploadify/jquery.uploadify.js?f=<%=System.currentTimeMillis()%>"></script>
网上还有这些:
根据stackoverflow上的帖子,
Asp.Net Web From
<script src="/Resources/uploadify/jquery.uploadify3.1Fixed.js?ver=<%=(new Random()).Next(0, 99999).ToString() %>" type="text/javascript"></script>
Asp.Net MVC
<script type="text/javascript" src=@Url.Content("~/Content/uploadify/jquery.uploadify3.1Fixed.js?ver=")@DateTime.Now.Ticks></script>
PHP
<script src="js/jquery.uploadify.min.js?ver=<?php echo rand(0,9999);?>" type="text/javascript"></script>
3.火狐浏览其中使用uploadify时的session丢失
使用过程中,因为牵扯权限控制,使用uploadify上传时经过了拦截器取得session,发现该session与当前页面访问的session并不是同一个,原因是sessionId发生了改变,这样导致在session中无法取得用户信息。
其解决办法在网上也找了良久,大部分的回答是在参数中添加sessionID,但是这种方法不仅有严重的安全隐患,而且由于使用java web开发,自从servlet1.2以后就不在支持sessionContext.getsessionId这样的方法了,想要在代码中根据sessionid取得session,必须手动编写添加session监听,过程也稍显麻烦。官网中对这个情况也有解释,由于官网使用PHP的例子,所用方法也是使用上述类似方法,使用sessionid来获得session。本身认为这种方法实在不可取。
其他变通方法可使用加密串确定登陆用户,不过如果系统本身对安全性的考虑不甚严格,可以直接将此问题跳过或使用其他上传插件和方法。
- 关于上传插件uploadify使用问题
- 关于文件上传jQuery插件jquery.uploadify的使用心得
- JQuery上传插件Uploadify使用
- JQuery uploadify 上传插件使用
- uploadify上传插件使用(一)
- uploadify上传插件使用(二)
- JavaScript uploadify插件上传文件问题
- JQuery上传插件Uploadify使用详解【struts2+uploadify+jquery】
- JQuery上传插件Uploadify使用详解
- JQuery上传插件Uploadify使用详解
- jQuery上传插件Uploadify使用详解
- JQuery上传插件Uploadify使用详解
- JQuery上传插件Uploadify使用详解
- JQuery上传插件Uploadify使用详解
- JQuery上传插件Uploadify使用详解
- JQuery 上传插件Uploadify使用详解
- JQuery上传插件Uploadify使用详解
- JQuery上传插件Uploadify使用详解
- Android 工具类收集(持续更新...)
- 第一个OC程序1.1
- 电磁炮基础控制板
- GetWindowTextLength
- phonegap3+,ios7+ 状态栏问题的解决
- 关于上传插件uploadify使用问题
- hadoop学习
- web api中序列化后的时间中含有“T”的解决方法
- 基于注解的SpringMVC搭建和freemark配置
- 将STM32的标准库编译成lib使用【图文】
- tcl 中的毫秒级等待
- cpu五级流水线设计优化之低功耗
- Java线程之FutureTask
- 再谈使用ffmpeg进行单纯音频编解码