关于上传插件uploadify使用问题
2015-02-10 15:30
344 查看
uploadify上传插件官网例子为PHP,但是java使用同样无碍。
主要使用文件为js,css,swf,以及一个uploadify-cancel.png的图片,使用时的常用参数设置为:
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
2.uploadify在谷歌浏览器上总会崩溃的解决方法
在使用测试时,发现在谷歌浏览器测试总是会出现页面崩溃。
解决的办法是: 给引入的js加上一个参数,时间戳就可以,防止缓存,使每一次都请求。(这个问题是因为谷歌浏览器会缓存文件导致的)
<script type="text/javascript" src="../common/uploadify/jquery.uploadify.js?f=<%=System.currentTimeMillis()%>"></script>
网上还有这些:
根据stackoverflow上的帖子,
Asp.Net Web From
Asp.Net MVC
PHP
3.火狐浏览其中使用uploadify时的session丢失
使用过程中,因为牵扯权限控制,使用uploadify上传时经过了拦截器取得session,发现该session与当前页面访问的session并不是同一个,原因是sessionId发生了改变,这样导致在session中无法取得用户信息。
其解决办法在网上也找了良久,大部分的回答是在参数中添加sessionID,但是这种方法不仅有严重的安全隐患,而且由于使用java web开发,自从servlet1.2以后就不在支持sessionContext.getsessionId这样的方法了,想要在代码中根据sessionid取得session,必须手动编写添加session监听,过程也稍显麻烦。官网中对这个情况也有解释,由于官网使用PHP的例子,所用方法也是使用上述类似方法,使用sessionid来获得session。本身认为这种方法实在不可取。
其他变通方法可使用加密串确定登陆用户,不过如果系统本身对安全性的考虑不甚严格,可以直接将此问题跳过或使用其他上传插件和方法。
主要使用文件为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
2.uploadify在谷歌浏览器上总会崩溃的解决方法
在使用测试时,发现在谷歌浏览器测试总是会出现页面崩溃。
解决的办法是: 给引入的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。本身认为这种方法实在不可取。
其他变通方法可使用加密串确定登陆用户,不过如果系统本身对安全性的考虑不甚严格,可以直接将此问题跳过或使用其他上传插件和方法。
相关文章推荐
- 关于使用flash上传插件uploadify出现的问题
- 关于ueditor编辑器插件的使用记录 --- 解决"后端配置项没有正常加载,上传插件不能正常使用"上传图片处的问题
- Asp.Net 4.5网站使用IIS发布 uploadify插件 上传文件大小问题
- 关于 jquery Uploadify 上传插件 在 asp.net中 的使用
- SpringMVC 使用uploadify插件上传文件,post方法无法直接获取参数问题
- 基于jquery的上传插件Uploadify 3.1.1在MVC3中的使用:上传大文件的IO Error问题
- 使用批量上传插件Uploadify出现的怪异问题
- 关于jquery文件上传插件 uploadify 3.1的使用
- 关于多文件上传插件uploadify使用总结
- 关于ThinkPHP下使用Uploadify插件火狐上传报302错误解决方法
- ssh项目使用uploadify-v2.1.4上传插件出现诡异问题(session丢失、初始化请求)
- 关于Thinkphp 使用uploadify上传文件的问题(data返回值的问题)
- 关于jquery.form.js插件的无刷新上传文件使用的问题
- Jsp中Uploadify插件的使用(jQuery上传插件)
- JQuery上传插件Uploadify使用详解
- (转)JQuery上传插件Uploadify使用详解及错误处理
- 详细讲解jquery带进度上传插件Uploadify(ASP.NET版本)使用
- JQuery上传插件Uploadify使用详解及错误处理
- [转] JQuery上传插件Uploadify使用详解
- Jsp中Uploadify插件的使用(jQuery上传插件)