Struts2+jquery.form.js实现图片与文件上传的方法


Posted in Javascript onMay 05, 2016

本文实例讲述了Struts2+jquery.form.js实现图片与文件上传的方法。分享给大家供大家参考,具体如下:

jquery.form.js是jQuery的一个官方用语支持异步上传文件的插件。官方网站:http://plugins.jquery.com/form/

结合Struts2三步轻松实现文件上传

一般是针对一个页面可能不止一个Form表单,所以在一个面提交表单会影响到另一个表单,为此,图片上传表单就可以使用无刷新提交方式上传,也就是异步上传,这时jquery.from.js就派上用场了。

一、HTML

导入本jS到页面、写好上传表单

<script type="text/javascript" src="/js/jquery.form.js"></script>
<!—图片上传 -->
<s:form id="picForm" name="picForm" action="/notice/showAddNotice.action" method="post" 
  enctype="multipart/form-data">
    <input type="file" name="pic" size="30"/><input type="submit" value="上传"/>
</s:form>

二、JS

// 为表单绑定异步上传的事件
$(function(){
    // 为表单绑定异步上传的事件
    $("#picForm").ajaxForm({
    url : "${pageContext.request.contextPath}/notice/uploadPic.action", // 请求的url
    type : "post", // 请求方式
    dataType : "text", // 响应的数据类型
    async :true, // 异步
    success : function(imageUrl){
        //alert(imageUrl);
    },
    error : function(){
        alert("数据加载失败!");
    }
});
// 为提交按钮绑定事件
$("#saveBtn").click(function(){
    // 表单输入较验
    var title = $("#title");
    // 获取textarea的内容
    var content = tinyMCE.get('content').getContent();
    var msg = "";
    if ($.trim(title.val()) == ""){
        msg = "公告标题不能为空!";
        title.focus();
    }else if ($.trim(content) == ""){
        msg = "内容不能为空!";
    }
    msg = "";
    if (msg != ""){
        alert(msg);
    }else{
        // 表单提交
        $("#noticeForm").submit();
    }
});

三、Struts2Action

public class uploadPicAjax extends AbstractAjaxAction {
    private static final long serialVersionUID = -4742151106080093662L;
    /** Struts2文件上传的三个属性 */
    private File pic;
    private String picFileName;
    private String picContentType;
    @Override
    protected String getJson() throws Exception {
        //获取项目部署的路径
        String realPath = ServletActionContext.getServletContext()
                .getRealPath("/images/notice");
        //生成新的文件名
        String newFileName = UUID.randomUUID().toString()+"."
                +FilenameUtils.getExtension(picFileName);// 获取文件的后缀名 aa.jpg --> jpg
        FileUtils.copyFile(pic, new File(realPath + File.separator + newFileName));
        return "/images/notice/" + newFileName;
    }
    /** setter and getter method **/
    ......
}

四、配置Struts2.xml

<!-- 图片的异步上传 -->
<action name="uploadPic" class="com.wise.hrm.action.notice.uploadPicAjax">
</action>

好了,从页面到后台就已经写完了。这样就可以上传了。完毕!

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
javascript将数组插入到另一个数组中的代码
Jan 10 Javascript
Javascript 浮点运算精度问题分析与解决
Mar 26 Javascript
JavaScript中Null与Undefined的区别解析
Jun 30 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
解决JavaScript数字精度丢失问题的方法
Dec 03 Javascript
Easyui form combobox省市区三级联动
Jan 13 Javascript
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
jQuery常用选择器详解
Jul 17 jQuery
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
Sep 16 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 Javascript
js实现拾色器插件(ColorPicker)
May 21 Javascript
使用jquery.form.js实现图片上传的方法
May 05 #Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
May 05 #Javascript
浅析JS异步加载进度条
May 05 #Javascript
AngularJS入门(用ng-repeat指令实现循环输出
May 05 #Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
May 04 #Javascript
一分钟理解js闭包
May 04 #Javascript
学JavaScript七大注意事项【必看】
May 04 #Javascript
You might like
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
php 删除cookie方法详解
2014/12/01 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
菜单效果
2006/10/14 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
原生js开发的日历插件
2017/02/04 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
使用python实现baidu hi自动登录的代码
2013/02/10 Python
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
Python出现segfault错误解决方法
2016/04/16 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
Python模块的加载讲解
2019/01/15 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
党员查摆问题及整改措施
2014/10/10 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
2015年仓库工作总结
2015/04/09 职场文书
中学政教处工作总结
2015/08/13 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
Python学习之迭代器详解
2022/04/01 Python