热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javauploadify3.2_jQuery上传插件Uploadify3.2上传文件

项目结构:代码:index.jsp:Stringpathrequest.getContextPath();StringbasePathrequest.g

项目结构:

9148133_201411031210090504.png

代码:

index.jsp:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

My JSP 'index.jsp' starting page

$(function(){

$("#uploadify").uploadify({

'debug'     : false, //开启调试

'auto'           : false, //是否自动上传

'swf'            : 'uploadify/uploadify.swf',  //引入uploadify.swf

'uploader'       : 'upload;jsessionid=${pageContext.session.id}',//请求路径

'queueID'        : 'fileQueue',//队列id,用来展示上传进度的

'width'     : '75',  //按钮宽度

'height'    : '24',  //按钮高度

'queueSizeLimit' : 3,  //同时上传文件的个数

'fileTypeDesc'   : '视频文件',    //可选择文件类型说明

'fileTypeExts'   : '*.jpg;*.gif', //控制可上传文件的扩展名

'multi'          : true,  //允许多文件上传

'buttonText'     : '图片上传',//按钮上的文字

'fileSizeLimit' : '2MB', //设置单个文件大小限制

'fileObjName' : 'uploadify',  //的name

'method' : 'post',

'removeCompleted' : true,//上传完成后自动删除队列

'onFallback':function(){

alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");

},

'onUploadSuccess' : function(file, data, response){//单个文件上传成功触发

//data就是action中返回来的数据

},'onQueueComplete' : function(){//所有文件上传完成

alert("文件上传成功!");

}

});

});

开始上传

取消所有上传

struts.xml:

UploadAction.java:

package com.action;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Properties;

import org.apache.commons.io.IOUtils;

import com.entity.Nfcuser;

import com.util.DeleteFile;

/**

* 上传文件到resource中

* @author Administrator

*

*/

public class UploadAction extends BaseAction {

private static final long serialVersionUID = 1L;

private File uploadify;//上传文件file对象

private String uploadifyFileName;//上传文件名

private String uploadifyContentType;//上传文件类型

private String description;//上传文件的描述

public String execute() throws IOException{

System.out.println("000000000");

Properties pro = new Properties();

InputStream in = DeleteFile.class.getClassLoader().getResourceAsStream("qiniu.properties");

pro.load(in);

String headpath = pro.getProperty("headpath");//读取配置文件,获取保存文件的根路径

String num = "";

for(int i&#61;0;i<5;i&#43;&#43;){

num &#43;&#61; String.valueOf((int)(Math.random()*10));//得到5位随机数

}

SimpleDateFormat dt &#61; new SimpleDateFormat("yyyyMMddhhmmss");

String date &#61; dt.format(new Date());//获取当前时间字符串

Nfcuser user &#61; (Nfcuser)session.get("loginuser");//从内存中得到用户对象

System.out.println(user.getUseraccount());

if(user&#61;&#61;null){

System.out.println("1");

return LOGIN;//用户未登录

}else{

System.out.println("2");

int userid &#61; user.getId();//用户编号

String filenum &#61; "";//生成保存上传文件的文件夹名称&#xff0c;这个名称也作为压缩文件的名称&#xff0c;

if(session.get("filenum")&#61;&#61;null){

System.out.println(3);

filenum &#61; userid &#43; date &#43; num;

session.put("filenum", filenum);

}else{

System.out.println(4);

System.out.println(session.get("filenum"));

filenum &#61; (String)session.get("filenum");

}

String path &#61; headpath &#43; userid &#43; "/" &#43; filenum &#43; "/resource/";//保存文件的路径

System.out.println(path);

File folder &#61; new File(path);

if(!folder.exists()){

folder.mkdirs();//如果路径不存在则创建

}

//下面才是保存文件&#xff0c;这上面都是对路劲的处理

System.out.println(uploadify);

String savePath &#61; path &#43; this.uploadifyFileName;

FileInputStream fis &#61; new FileInputStream(uploadify);

FileOutputStream fos &#61; new FileOutputStream(savePath);

IOUtils.copy(fis, fos);

fos.flush();

fos.close();

fis.close();

}

return null;

}

public File getUploadify() {

return uploadify;

}

public void setUploadify(File uploadify) {

this.uploadify &#61; uploadify;

}

public String getUploadifyFileName() {

return uploadifyFileName;

}

public void setUploadifyFileName(String uploadifyFileName) {

this.uploadifyFileName &#61; uploadifyFileName;

}

public String getUploadifyContentType() {

return uploadifyContentType;

}

public void setUploadifyContentType(String uploadifyContentType) {

this.uploadifyContentType &#61; uploadifyContentType;

}

public String getDescription() {

return description;

}

public void setDescription(String description) {

this.description &#61; description;

}

}

注意&#xff1a;如果提交报错&#xff0c;数据根本就没有传递到后台&#xff0c;那么可以试着把提交路径改为

&#39;uploader&#39;       : &#39;upload.action;jsessionid&#61;${pageContext.session.id}&#39;,//请求路径

如果web.xml中的配置为&#xff1a;

struts2

/*

那么路径可以为&#xff1a;

&#39;uploader&#39;       : &#39;upload;jsessionid&#61;${pageContext.session.id}&#39;,//请求路径

如果web.xml配置为&#xff1a;

struts2

*.action

那么提交路径必须为&#xff1a;

&#39;uploader&#39;       : &#39;upload.action;jsessionid&#61;${pageContext.session.id}&#39;,//请求路径

如果需要在UploadAction中使用session&#xff0c;那么在路径后把jsessionid&#61;${pageContext.session.id}&#39;加上&#xff0c;如果不需要使用session可以不用加。



推荐阅读
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文详细探讨了 jQuery 中 `ajaxSubmit` 方法的使用技巧及其应用场景。首先,介绍了如何正确引入必要的脚本文件,如 `jquery.form.js` 和 `jquery-1.8.0.min.js`。接着,通过具体示例展示了如何利用 `ajaxSubmit` 方法实现表单的异步提交,包括数据的发送、接收和处理。此外,还讨论了该方法在不同场景下的应用,如文件上传、表单验证和动态更新页面内容等,提供了丰富的代码示例和最佳实践建议。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 本文深入解析了 jQuery 中用于扩展功能的三个关键方法:`$.extend()`、`$.fn` 和 `$.fn.extend()`。其中,`$.extend()` 用于扩展 jQuery 对象本身,而 `$.fn.extend()` 则用于扩展 jQuery 的原型对象,使自定义方法能够作为 jQuery 实例的方法使用。通过这些方法,开发者可以轻松地创建和集成自定义插件,增强 jQuery 的功能。文章详细介绍了每个方法的用法、参数及实际应用场景,帮助读者更好地理解和运用这些强大的工具。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
author-avatar
小果康康维五_469
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有