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 相关文章推荐
使用JS操作页面表格,元素的一些技巧
Feb 02 Javascript
[JSF]使用DataModel处理表行事件的实例代码
Aug 05 Javascript
jquery实现多级下拉菜单的实例代码
Oct 02 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
Oct 29 Javascript
jQuery中:empty选择器用法实例
Dec 30 Javascript
jQuery简单tab切换效果实现方法
Apr 08 Javascript
jQuery图片拖动组件Dropzone用法示例
Jan 17 Javascript
Vue-cli3项目配置Vue.config.js实战记录
Jul 29 Javascript
微信小程序左滑删除功能开发案例详解
Nov 12 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 Javascript
jquery实现Ajax请求的几种常见方式总结
May 28 jQuery
layui 弹出删除确认界面的实例
Sep 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
PHP 字符串操作入门教程
2006/12/06 PHP
PHP操作XML作为数据库的类
2010/12/19 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
p5.js实现简单货车运动动画
2019/10/23 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
Python 字符串转换为整形和浮点类型的方法
2018/07/17 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
python实现简单成绩录入系统
2019/09/19 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
椰子猫砂:CatSpot
2018/08/27 全球购物
高中毕业自我鉴定
2013/12/13 职场文书
我的大学生活演讲稿
2014/04/25 职场文书
学校工作推荐信范文
2014/07/11 职场文书
计生个人工作总结
2015/02/28 职场文书
Python实现聚类K-means算法详解
2022/07/15 Python