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 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
javascript eval函数深入认识
Feb 21 Javascript
for 循环性能比较 提高for循环的效率
Mar 19 Javascript
AngularJs动态加载模块和依赖注入详解
Jan 11 Javascript
jquery实现可旋转可拖拽的文字效果代码
Jan 27 Javascript
AngularJS延迟加载html template
Jul 27 Javascript
Ajax 加载数据 练习代码
Jan 05 Javascript
AngularJS Toaster使用详解
Feb 24 Javascript
jQuery中用on绑定事件时需注意的事项
Mar 19 Javascript
10个在JavaScript开发中常遇到的BUG
Dec 18 Javascript
highCharts提示框中显示当前时间的方法
Jan 18 Javascript
jQuery中DOM常见操作实例小结
Aug 01 jQuery
使用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
URL Rewrite的设置方法
2007/01/02 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
2019/03/21 PHP
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
解决Linux无法正常安装与卸载Node.js的方法
2018/01/19 Javascript
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
python实现淘宝秒杀脚本
2020/06/23 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
Python日志处理模块logging用法解析
2020/05/19 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
PHP面试题及答案二
2015/05/23 面试题
路政管理专业推荐信
2013/11/11 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
阳光体育活动方案
2014/02/16 职场文书
学校安全防火方案
2014/06/07 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
导游欢迎词范文
2015/01/23 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技