uploadify是一个jquery插件,用来实现文件上传的功能。

20160724 看起来感觉挺麻烦的

一般会买一个html5版的。

html

<input id="custom_file_upload" type="file" name="Filedata" />

js

//关键是路径要设置正确
//总会发起请求:http://localhost:8080/jyxt/img/uploadify-cancel.png,不知道从哪发起的?
function inituploadimge(){
$('#custom_file_upload1').uploadify({
'swf' : path_t+'js/uploadify.swf',
     //后台处理程序的URL
'uploader' : path_t+'manage/fileupload/',
'method' : "post",
'use_query_string': true,
'post_params': {
"hello" : encodeURI("你好,我是","utf-8"),
"baseurl" : "userfiles/images/linkimages/"
},
'cancelImage' : path_t+'images/cancel.png',
'buttonText' : '浏览',
'buttonImg' : path_t+'images/sel.png',
'queueID' : 'custom-queue1',
'fileTypeExts':'*.jpg;*.gif;*.png;',
'fileTypeDesc':'图片文件',
'removeCompleted': true,
'onSelectOnce' : function(event,data) {
$('#custom-queue1').text('文件上传中!');
},
'onUploadSuccess' : function(file, data, response) {
$('#custom-queue1').text('上传成功');
$('#picUrl').attr("value",data);
}
});
}

controller

//存储的路径设置比较麻烦
//1、savePath如何设置基础的路径?baseurl是传过来的,相对于webcontent的路径。
//2、保存时,会保存到tomcat下,应该保存在jyxt中呀?
//3、saveFile.getAbsolute()可以得到文件存储的路径。
//4、request.getServletPath()  是uploader的值
@RequestMapping(value = "/manage/fileupload/", method = RequestMethod.POST)
public void fileUpload(HttpServletRequest request,HttpServletResponse response) throws Exception {
//设置路径
String baseurl=request.getParameter("baseurl");
//路径有问题
String savePath = request.getSession().getServletContext().getRealPath("")+"/"+baseurl; DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac); String filename=""; File f1 = new File(savePath);
if (!f1.exists()) {
f1.mkdirs();
}
List<FileItem> fileList = null;
fileList = (List<FileItem>) upload.parseRequest(request);
Iterator<FileItem> it = fileList.iterator(); String name = "";
String extName = "";
while (it.hasNext()) { FileItem item = it.next();
if (!item.isFormField()) {
name = item.getName();
if (name == null || name.trim().equals("")) {
continue;
}
if (name.lastIndexOf(".") >= 0) {
extName = name.substring(name.lastIndexOf("."));
}
Object[] test = {"gif","png","jpg","doc","docx","xls","xlsx","ppt","pptx","ptf","rar","zip",""};
if(!ArrayUtils.contains(test, extName.toLowerCase().substring(1)))
{
continue;
}
File file = null;
do {
name=DateUtil.getNowDateString();
filename=savePath + name + extName;
file = new File(filename);
} while (file.exists());
File saveFile = new File(filename);
try {
item.write(saveFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
response.getWriter().print(request.getContextPath()+"/userfiles/images/linkimages/"+name+extName);
}

以上代码是可以使用的。不过因为uploadify版本不同,文件路径不同,可能会有问题。只是借此记录一些关键的问题。

uploadify的碎碎念 upload的更多相关文章

  1. Linux碎碎念

    在学习Linux过程中,有许多有用的小技巧.如果放在纸质的笔记本上,平时查阅会相当不方便.现在以一种“碎碎念”的方式,汇集整理在此,目前还不是很多,但随着学习.工作的深入,后续会陆陆续续添加更多的小技 ...

  2. 一些关于Linux入侵应急响应的碎碎念

    近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...

  3. 一个谷粉和3年的Google Reader重度使用者的碎碎念

    2013-03-14 上午看到Andy Rubin辞去Android业务主管职务.由Chrome及应用高级副总裁继任的新闻,还在想这会给Android带来什么,中午刷微博的时候就挨了当头一棒:Goog ...

  4. Jerry的碎碎念:SAPUI5, Angular, React和Vue

    去年我去一个国内客户现场时,曾经和他们IT部门的一位架构师聊到关于在SAP平台上进行UI应用的二次开发时,UI框架是选用UI5还是Vue这个话题. 我们代表SAP, 向客户推荐使用UI5是基于以下六点 ...

  5. 结对编程ending-我和洧洧的碎碎念

    应该是第一次和队友分工合作去完成一个项目,其中也经历了跳进不少坑又被拉回来的过程,总体来说这对于我俩也的确是值得纪念的一次经历. 我的碎碎念时间…… 对比个人项目和结对编程项目二者需求,前者重在面对不 ...

  6. C语言 · 分分钟的碎碎念

    算法提高 分分钟的碎碎念   时间限制:1.0s   内存限制:256.0MB      问题描述 以前有个孩子,他分分钟都在碎碎念.不过,他的念头之间是有因果关系的.他会在本子里记录每一个念头,并用 ...

  7. 最近关于Qt学习的一点碎碎念

    最近关于Qt学习的一点碎碎念 一直在使用Qt,但是最近对Qt的认识更加多了一些.所以想把自己的一些想法记录下来. Qt最好的学习资料应该是官方的参考文档了.对Qt的每一个类都有非常详细的介绍.我做了一 ...

  8. Java实现 蓝桥杯VIP 算法提高 分分钟的碎碎念

    算法提高 分分钟的碎碎念 时间限制:1.0s 内存限制:256.0MB 问题描述 以前有个孩子,他分分钟都在碎碎念.不过,他的念头之间是有因果关系的.他会在本子里记录每一个念头,并用箭头画出这个念头的 ...

  9. MySQL碎碎念

    1. 如何修改Mysql的用户密码 mysql> update mysql.user set password=password('hello') where user='root'; mysq ...

随机推荐

  1. shell脚本面试题

    Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件( ...

  2. vmware搭建vSAN提示磁盘不合格或者看不到磁盘的解决办法

    1.如果磁盘不合格,或者在创建磁盘组的时候看不到该磁盘,一般的原因都是该磁盘有其他分区,可以使用下面的方法来解决 a.首先开启esxi主机的ssh功能 b.登陆到esxi的后台 c. ls /dev/ ...

  3. HttpClient实战二:单线程和多线程连接池实例

    为什么使用HTTP连接池? 随着系统架构风格逐渐向前后端分离架构,微服务架构转变,RestFul风格API的开发与设计,同时SpringMVC也很好的支持了REST风格接口.各个系统之间服务的调用大多 ...

  4. linux下静默安装 weblogic12.2.1.3中间件

    第一步:准备需要的安装包文件,这里注意 weblogic12.2.*需要的最低JDK版本为1.8以上 1.查看当前的镜像列表:docker images 2.运行镜像,并进入容器,这里运行基本的cen ...

  5. 表单提交的两种请求方式:post与get。post与get两者的对比分析

    post与get两者的对比分析:

  6. Oracle登录命令

    1.运行SQLPLUS工具 C:\Users\wd-pc>sqlplus 2.直接进入SQLPLUS命令提示符 C:\Users\wd-pc>sqlplus /nolog 3.以OS身份连 ...

  7. 【转】MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF

    MEF可以在传统应用程序中使用(包括桌面的Winform.控制台程序和Web的ASP.NET),也可以在RIA的Silverlight中使用.在Silverlight中只是宿主的方式有所不同,实际上在 ...

  8. 面向对象设计模式纵横谈:Factory Method 工厂方法模式(笔记记录)

    从耦合关系谈起 耦合关系直接决定着软件面对变化时的行为 -模块与模块之间的紧耦合使得软件面对变化时,相关模块都要随之更改 -模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其 ...

  9. 版本号比较函数-js

    面试前,让做的一个版本号比较函数. <script type="text/javascript"> var v1=prompt("请输入第一个版本号" ...

  10. 从一个流中读数据--fread

    头文件:#include<stdio.h> 函数原型:int fread(void *ptr,int size,int nitems,FILE *stream); 参数说明: ptr:用于 ...