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生成的html出现样式问题的解决方法
Apr 16 Javascript
js取得url地址参数实例
Feb 22 Javascript
jquery cookie实现的简单换肤功能适合小网站
Aug 25 Javascript
Java中Timer的用法详解
Oct 21 Javascript
jQuery实现日期联动效果实例
Jul 26 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
Jan 23 Javascript
Jquery实现跨域异步上传文件总结
Feb 03 Javascript
vue.js选中动态绑定的radio的指定项
Jun 02 Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
Aug 17 Javascript
js实现控制文件拖拽并获取拖拽内容功能
Feb 17 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
Apr 28 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连接access数据库
2008/03/27 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
2015/08/26 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
使用javascript插入样式
2016/03/14 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
Python 不同对象比较大小示例探讨
2014/08/21 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
详解如何使用Python编写vim插件
2017/11/28 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
python 图像平移和旋转的实例
2019/01/10 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
python要安装在哪个盘
2020/06/15 Python
scrapy-splash简单使用详解
2021/02/21 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
路由表示做什么用的?在linux环境中怎么来配置一条默认路由?
2013/06/07 面试题
几道Web/Ajax的面试题
2016/11/05 面试题
写给学生的新学期寄语
2014/01/18 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
文体活动总结
2015/02/04 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android