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 相关文章推荐
jquery ajax提交表单数据的两种方式
Nov 24 Javascript
js限制文本框输入长度两种限制方式(长度、字节数)
Dec 19 Javascript
jquery乱码与contentType属性设置问题解决方案
Jan 07 Javascript
JS常见问题整理(持续更新)
Aug 06 Javascript
jQuery中:animated选择器用法实例
Dec 29 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
Aug 19 Javascript
9个让JavaScript调试更简单的Console命令
Nov 14 Javascript
Node.js中 __dirname 的使用介绍
Jun 19 Javascript
微信小程序实时聊天WebSocket
Jul 05 Javascript
详解React 服务端渲染方案完美的解决方案
Dec 14 Javascript
JavaScript制作3D旋转相册
Aug 02 Javascript
JavaScript 生成唯一ID的几种方式
Feb 19 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面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
功能强大的php文件上传类
2016/08/29 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
jQuery获取URL请求参数的方法
2015/07/18 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
vue.js的提示组件
2017/03/02 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
Python Django的安装配置教程图文详解
2019/07/17 Python
python global关键字的用法详解
2019/09/05 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
介绍一下常见的木马种类
2014/11/15 面试题
小学生元旦广播稿
2014/02/21 职场文书
运动会新闻报道稿
2015/07/22 职场文书
安全伴我行主题班会
2015/08/13 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书