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 回调函数中变量作用域的讨论
Sep 11 Javascript
jQuery AJAX回调函数this指向问题
Feb 08 Javascript
jQuery 拖动层(在可视区域范围内)
May 24 Javascript
js读取配置文件自写
Feb 11 Javascript
javascript中setTimeout使用指南
Jul 26 Javascript
jquery中checkbox使用方法简单实例演示
Nov 24 Javascript
jQuery中cookie插件用法实例分析
Dec 04 Javascript
javascript拖拽应用实例
Mar 25 Javascript
基于Vuejs框架实现翻页组件
Jun 29 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
Mar 21 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
layer.js之回调销毁对话框的例子
Sep 11 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
APMServ使用说明
2006/10/23 PHP
php ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
php二维码生成以及下载实现
2017/09/28 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
对于Python中RawString的理解介绍
2016/07/07 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
Python 如何实现数据库表结构同步
2020/09/29 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
在求职信中如何凸显个人优势
2013/10/30 职场文书
工程力学硕士生的自我评价范文
2013/11/16 职场文书
请假条范文大全
2014/04/10 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
高中班主任评语
2014/12/30 职场文书
争先创优个人总结
2015/03/04 职场文书