文档章节

FireFox下面文件上传session丢失情况

四月李
 四月李
发布于 2014/10/27 15:03
字数 852
阅读 28
收藏 0

前段时间在做项目的时候用到了JQuery的一个上传插件,但是呢,在火狐下面上传的时候在后台怎么也获取不到一些信息,后来才发现原来是session丢失了,我的解决方案很简单,直接是把要获取的信息加到上传的url后面,然后再从后来截取出来,这样就不会丢失了

image这些信息是要传递到后台处理的有用信息,但是session丢失了,用户信息后台获取不到,image通过加载url后面,具体代码如下:

 

<%@page import="com.sun.corba.se.spi.servicecontext.UEInfoServiceContext,java.util.*"%>
<%@ page language="java"  contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%
    String videoinfo = request.getParameter("video_Info");
    List<String> list = (List<String>)request.getSession().getAttribute("videoName");
    String userAcc = request.getSession().getAttribute("userAccount").toString();
    String userName = request.getSession().getAttribute("userName").toString();
    String userOrg = request.getSession().getAttribute("userOrg").toString();
    String videoInfo = videoinfo + "~" + userName + "~" + userOrg;//要传递到后台的信息
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>批量上传界面</title>
</head>
      <!-- 验证还是jquery-validation好用,这里省事没用 -->
  <body>
           <script src="${ctx}/resources/js/jquery-1.8.3.js"></script>
         <link rel="stylesheet" type="text/aacss" href="${ctx}/resources/css/uploadify.css" />
        <script src="${ctx}/resources/js/jquery.uploadify.js"></script>
        <script src="${ctx}/resources/js/jquery.uploadify.min.js"></script>
        <style type="text/css"> 
        .loginButton
        {
          background:#E1E9DC;
            width:80px;
            height:30px;
            border:none;
            font-size:13px;
            font-family: 微软雅黑;
            border-top:1px solid #1C7887;
            border-left:1px solid #1C7887;
            border-right:1px solid #1C7887;
            border-bottom:1px solid #1C7887;
            cursor:pointer;
        }

        .uploadify-button {
            width:80px;
            height:30px;
            border:none;
        }   
    </style>
<script type="text/javascript"  >
    $(function(){
        //alert(window.parent.document.getElementById("add_info").value);
        //var uploadify_url = window.parent.document.getElementById("add_info").value;
        var uploadify_url = '${ctx}/video/createMoreVideo;jsessionid=<%=request.getSession().getId()%>?videoinfo='+encodeURIComponent('<%=videoInfo%>');//加载后面直接传递
        
        $("#uploadify").uploadify({
            "uploader":uploadify_url,
            "swf": '${ctx}/resources/js/uploadify.swf',
            'script': '',
            "buttonClass":"uploadify-button",
            "buttonText":"<div class='loginButton'>选择文件</div>",
            'width': 79,//buttonImg的大小
            'height': 30,//
            "folder":"UploadFile", //文件上传路径
            "queueID":"fileQueue", //div层的id
            "auto":false, //是否立即上传
            "progressData":"percentage",
            "multi":true , //是否支持多文件上传
            "queueSizeLimit":10 ,//最多上传文件个数
            "fileSizeLimit":'204800KB', //文件的最大值200M204800KB
            "removeTimeout":'2',
            "removeCompleted": false,
            "fileTypeExts":"*.avi" ,//文件的格式
            "fileTypeDesc": "请选择avi格式的文件", //设置文件上传格式显示文字
            'onQueueComplete' : function(queueData) {
                alert('所有文件上传完成');
                window.close();
                //$('#myPop2Window').window('close');
            },
            'onSelect' : function(file) {
                //alert('The file ' + file.name + ' was added to the queue.');
                if(file.name.split("_").length!=5) {
                    alert("'"+file.name+"'视频名称格式不正确,如:中国银行_广告_198_1609_中行家庭财产保险游.avi");
                    $('#uploadify').uploadify('cancel', file.id);
                }
                if(file.name.split(".").length!=2) {
                    alert("'"+file.name+"'视频名称格式不正确,如:中国银行_广告_198_1609_中行家庭财产保险游.avi");
                    $('#uploadify').uploadify('cancel', file.id);
                }
                <%
                for(int i = 0; i < list.size();i++){
                        String name = list.get(i);
                    %>
                    if(file.name=='<%=name%>'){
                        alert(file.name+"视频已上传过,请重新选择!!");
                        $('#uploadify').uploadify('cancel', file.id);
                    }
                    <%
                }
                %>
            },
            "onUploadSuccess": function(file, data, response){
                //在每一个文件上传成功或失败之后触发,返回上传的文件对象或返回一个错误,如果你想知道上传是否成功,最后使用onUploadSuccess或onUploadError事件
                //alert(data);
            },
            'onClearQueue' : function(queueItemCount){
                alert(queueItemCount + ' file(s) were removed from the queue');
            },
            "onUploadProgress": function(file,bytesUploaded,bytesTotal,totalBytesUploaded,totalBytesTotal){
                $('#pregress').html('总共需要上传'+bytesTotal+'字节,'+'已上传'+totalBytesTotal+'字节')
            },
            "onCancel" : function(file) {
                        //alert('The file ' + file.name + ' was cancelled.');
                                         },
           'onFallback' : function() {
                alert('Flash was not detected.');
            }
        });
   
     });

    
 
     
    </script>
    <form  id="videoAddForm" method="post" style="text-align: center;background-color: #D7D7D9;width: 100%" enctype ="multipart/form-data">
       
        <table width="100%" border="0px">
            <tr>
            <td><input  type="file" name="uploadify" id="uploadify" /></td>
            <td><input class="loginButton" value="提交" type="button" onclick="javascript:$('#uploadify').uploadify('upload','*')" ></td>
            <td><input class="loginButton" value="全部清除" type="button" onclick="javascript:$('#uploadify').uploadify('cancel', '*')" ></td>
            </tr>
            <tr>
                <td colspan="4" width="100%" height="100%">
                    <div id="fileQueue" style="width: 400;height: 350;"></div>       
                </td>
            </tr>
        </table>
    </form>
    </body>
</html>

© 著作权归作者所有

四月李
粉丝 16
博文 59
码字总数 50238
作品 0
成都
程序员
私信 提问
CodeIgniter + uploadify 在 IE 下会话丢失问题的解决方案

最近需要学习并用CodeIgniter框架对一个项目进行二次开发,由于之前一直都是使用Symfony做项目,所以再换到CodeIgniter项目上还是比较顺畅的。不过相比较之下,感觉CodeIgniter比Symfony要轻...

random123
2014/06/23
187
0
uploadify 上传时丢失session

uploadify上传用的是一个flash插件,flash中有个bug就是自身创建一个session,这样就导致与web本身的session不一致 权限验证失败的问题。 因为uploadify是不会自动传送session值的,所以当s...

自由de风
2015/05/13
1K
3
关于jfinal 文件上传,jsessionid 的问题

@JFinal 你好,想跟你请教个问题: 各位大侠,最近在用jfinal做文件上传,遇到棘手的问题,描述如下: 我们一般会使用 swfupload 或者 jquery uploadify之类的控件做文件上传, 在火狐浏览器...

jelly_oy
2015/02/14
1K
6
flash上传,Firefox的session问题?

因为我用的插件是uploadify,是用flash上传的,页面转到一个servlet处理该上传文件,因为还要预览你上传的图片,所以要把文件在服务器上的全路径传到原页面并刷新,这样的话页面可以显示你上...

采姑娘的小蘑菇
2009/12/31
3.3K
4
文件上传,因为业务需要,需要读取excel流2次,在第二次读取的时候,用chrome就会丢失

struts2文件上传,用的ajaxfileupload插件进行上传,因为业务需要,判断是否继续上传文件,如果选择了是,则再一次进行ajaxfileupload提交,读取流,而这种情况出现在chrome浏览器就出现流丢...

tym33
2015/08/14
93
0

没有更多内容

加载失败,请刷新页面

加载更多

Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
45分钟前
4
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
7
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
1
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
5
0
OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
2.9K
19

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部