工作中碰到uploadify插件两个版本:HTML5和Flash

最近工作中碰到上传文件插件使用问题:在工作中碰到app嵌套html5页面中使用上传文件问题,因为之前使用的是stream上传插件(http://www.twinkling.cn/),但是该插件跨域传输出现问题,无法传输成功,经过几次调试都无法解决跨域,然后我就换了个插件uploadify,一开始用的flash版本,但是此版本不支持在app中使用,于是就想到了用html5版本的,感觉笨死了,这个问题整了时间有点长了,下面开始说html版本的使用

首先,页面代码:

后台代码:

@SuppressWarnings({ "unchecked", "rawtypes" })

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 获得参数

String timestamp = request.getParameter("timestamp");

String token = request.getParameter("token");

System.out.println(timestamp);

System.out.println(token);

// 获得文件

String savePath = this.getServletConfig().getServletContext()

.getRealPath("");

savePath = savePath + "/uploads/";

File f1 = new File(savePath);

System.out.println(savePath);

if (!f1.exists()) {

f1.mkdirs();

}

DiskFileItemFactory fac = new DiskFileItemFactory();

ServletFileUpload upload = new ServletFileUpload(fac);

upload.setHeaderEncoding("utf-8");

List fileList = null;

try {

fileList = upload.parseRequest(request);

} catch (FileUploadException ex) {

System.out.println(ex.getMessage());

return;

}

Iterator<FileItem> it = fileList.iterator();

String name = "";

String extName = "";

while (it.hasNext()) {

FileItem item = it.next();

if (!item.isFormField()) {

name = item.getName();

long size = item.getSize();

String type = item.getContentType();

System.out.println(size + " " + type);

if (name == null || name.trim().equals("")) {

continue;

}

// 扩展名格式:

if (name.lastIndexOf(".") >= 0) {

extName = name.substring(name.lastIndexOf("."));

}

File file = null;

name = UUID.randomUUID().toString();

do {

// 生成文件名:

name = UUID.randomUUID().toString();

file = new File(savePath + name + extName);

} while (file.exists());

File saveFile = new File(savePath + name + extName);

try {

item.write(saveFile);

} catch (Exception e) {

e.printStackTrace();

}

}

}

response.getWriter().print(name + extName);

}

解决跨域问题主要是

第一:在web.xml中配置

<!-- 解决uploadify插件跨域 -->

<filter>

<filter-name>cors</filter-name>

<filter-class>cn.qtone.eduoa.web.filter.SimpleCORSFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>cors</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- 解决uploadify插件跨域 -->

第二:写过滤器SimpleCORSFilter

原文地址:https://www.cnblogs.com/yunshaowei/p/11968091.html

时间: 2024-12-13 14:31:46

工作中碰到uploadify插件两个版本:HTML5和Flash的相关文章

asp.net中使用uploadify插件上传文件, session中的值丢失的问题

工作中遇到使用uploadify插件上传文件后,后台代码中的session[XXX]值为null的问题,反复跟踪,发现不是值丢失,而是sessionID发生了变化,而引起SessionID发生变化的原因就是因为使用了uplodify插件 解决方法: <script type="text/javascript"> var auth = "<% = Request.Cookies[FormsAuthentication.FormsCookieName]==nul

工作中碰到的问题

1 缺少GCC环境 yum groupinstall "Development Tools" yum -y install gcc gcc-c++ kernel-devel yum -y install gcc gcc-c++ make 2 查看服务器型号 [[email protected] ~]# dmidecode | grep "Product Name" Product Name: VMware Virtual Platform Product Name:

在MVC中利用uploadify插件实现上传文件的功能

趁着近段的空闲时间,开发任务不是很重,就一直想把以前在仓促时间里所写的多文件上传功能改一下,在网上找了很多例子,觉得uploadify还可以,就想用它来试试.实现自己想要的功能.根据官网的开发文档,同时借鉴别人的经验,经过断断续续的修改(中间一直被安排其它事),把uploadify默认的样式改,同时把共性都封装了一下,最终完工了. 1.在_Layout.cshtml 页面中引入js文件和CSS文件: 1 @*-------上传文件--------*@ 2 <link href="@Url.

工作中Mabatis问题记录-两个实体具有一对多关系,根据一那个实体进行分页

<sql id="limit"> <if test='offset != 0 and limit != 0'> LIMIT #{offset}, #{limit} </if> <if test='offset == 0 and limit != 0'> LIMIT #{limit} </if> </sql> <resultMap id="queryPointInfosMap" type=&

工作中碰到的一些问题以及解决方法

一.左中右布局,左边定宽,中.右百分比的布局: (1)HTML代码: <div class="three-left"> </div> <div class="three-right-container"> <div class="three-mid"> </div> <div class="three-right"> </div> </d

工作中碰到的一个问题(cookie相关)

今天上线了一个API,6台机器做的集群.API的第一步是读取cookie,判断用户是否登录. 例如,线上服务器分别是 10.255.242.1 10.255.242.2 10.255.242.3 10.255.242.4 10.255.242.5 10.255.242.6, API地址是  mlservice.taobao.com(随便举得一个例子),api的第一步是取COOKIE,判断用户是否登录,调用方式为mlservice.taobao.com?test_id=12 完成上线之后,我总是要

那些最近工作中遇到的插件(上个世纪版)

es5-shim es5-shim.js 是指在模拟不兼容es5语法的浏览器, 典型的ie 6/7/8浏览器 extract-text-webpack-plugin 他会将所有required的*.css模块抽取到分离的CSS文件, 所以你的样式不会内联到JS bundle, 而是在一个单独的CSS文件, 如果你的样式文件很大, 这样会提速, 因为CSS bundle和JS bundle 是平行加载的 使用 const ExtractTextPlugin = require("extract-t

Eclipse中安装SVN插件的艰难旅程

我们写Java程序的人都知道Eclipse,也装过一些插件,比如Android开发的使用需要安装ADT等,如果代码提交的话我们可能需要安装git和svn的插件,但是这个插件我以前听过,但是一直没有安装过,所以感觉安装的难度应该不大,本来我是不会用这个插件的,但是刚到了一家新公司(每个公司的制度是不一样的,这个必须得适应),他在提交代码的时候,需要leader来review一下(一般都是这样的,除非你刚入职的哪家公司的这个项目你是第一个做,不然肯定会先熟悉代码,然后修改提交).老大看可以就提交了.

工程师如何在工作中提升自己?(公众号)

工程师如何在工作中提升自己? 2018-04-21 刘丁 程序人生 点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 引言 古人云:“活到老,学到老.”互联网算是最辛苦的行业之一,“加班”对工程师来说已是“家常便饭”,同时互联网技术又日新月异,很多工程师都疲于应付,叫苦不堪.以至于长期以来流传一个很广的误解:35岁是程序员工作的终点. 如何在繁忙的工作中做好技术积累,构建个人核心竞争力,相信是很多工程师同行都在思考的问题.本文是我自己的一些总结,试图从三个方面来解答: