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 CSS修改学习第五章 给“上传”添加样式
Feb 19 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
Jul 18 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
Apr 18 Javascript
jQuery 3.0中存在问题及解决办法
Jul 15 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
Feb 06 Javascript
JavaScript实现购物车基本功能
Jul 21 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
Aug 03 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
Aug 20 Javascript
vue中的计算属性和侦听属性
Nov 06 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
php实现websocket实时消息推送
2018/03/30 PHP
接收键盘指令的脚本
2006/06/26 Javascript
Js动态创建div
2008/09/25 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
python控制台英汉汉英电子词典
2020/04/23 Python
python的迭代器与生成器实例详解
2014/07/16 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
Python修改列表值问题解决方案
2020/03/06 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
香港交友网站:be2香港
2018/07/22 全球购物
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
小学岗位竞聘方案
2014/01/22 职场文书
小学教师师德感言
2014/02/10 职场文书
老员工辞职信范文
2015/05/12 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang