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 相关文章推荐
短信提示使用 特效
Jan 19 Javascript
不同浏览器的怪癖小结
Jul 11 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
Feb 16 Javascript
jquery入门必备的基本认识及实例(整理)
Jun 24 Javascript
js处理表格对table进行修饰
May 26 Javascript
JavaScript对象反射用法实例
Apr 17 Javascript
jQuery插件简单实现方法
Jul 18 Javascript
JS实现图片的不间断连续滚动的简单实例
Jun 03 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
vuex管理状态仓库使用详解
Jul 29 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 Javascript
基于JQuery和DWR实现异步数据传递
Oct 16 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
使用npm发布Node.JS程序包教程
2015/03/02 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
python生成IP段的方法
2015/07/07 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
python的re正则表达式实例代码
2018/01/24 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
python绘制漏斗图步骤详解
2019/03/04 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
化学学院毕业生自荐信范文
2013/12/17 职场文书
小学生评语集锦
2014/04/18 职场文书
政治学专业毕业生求职信
2014/08/11 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
学术会议邀请函
2015/01/30 职场文书
锅炉工岗位职责
2015/02/13 职场文书
go语言map与string的相互转换的实现
2021/04/07 Golang
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技
Java Spring读取和存储详细操作
2022/08/05 Java/Android