`
JavaLike
  • 浏览: 30442 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JQuery插件ajaxfileupload上传文件无需创建form表单

阅读更多

Query插件ajaxfileupload上传文件无需创建form表单,这样就可以解决在form嵌套中ajax表单提交出现的问题

页面代码:(需要把ajaxfileupload.js包含进来)

<!-- 引入相关的js文件,相对路径  -->
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/ajaxfileupload.js"></script>

<!-- 执行上传文件操作的函数 -->
      <script type="text/javascript">

       function uploadFile() {

               $.ajaxFileUpload({url:path + "/compoundbatchsearch/upLoadTxtFile.do",
                                          secureuri:false,
                                          fileElementId:"batchSearchFile", //页面中File标记 id的值
                                          dataType:"XML",
                                          success:function (data, status) {
                                          uploadcallback(data);
                                          },
                                         error:function (data, status, e) {
                                         uploadcallback("occurError");
                                         }
                                });

              }

 

<div id="search_area" style="position: absolute; z-index: auto; ">
      <input id="uploadFile" accept="text/html" type="file" name="uploadFile" />
      <input type="button" id="upload" value="uploadFile()" />
 </div>

 

服务器端代码:(应用了spring2.5,需要在spring配置文件中定义multipartResolver bean)

@Controller
public class CompoundBatchSearchController {
   
    private static final Logger logger = Logger.getLogger(CompoundBatchSearchController.class);
   
    @Resource(name="compoundBatchSearchService")
    private ICompoundBatchSearchService compoundBatchSearchService;
   
    @RequestMapping
    public void upLoadTxtFile(HttpServletResponse response, HttpServletRequest request) {
        logger.info("upload txt file action...");
        // clear session before parese txt file
        if (request.getSession().getAttribute(Constants.RESULT_IDS) != null) {
            request.getSession().removeAttribute(Constants.RESULT_IDS);
        }
       
        try {
            // upload file
            MultipartHttpServletRequest mhs = (MultipartHttpServletRequest) request;
            MultipartFile mf = mhs.getFile("batchSearchFile");
            File file = FilePathHelper.uploadFile(mf, Constants.UPLOAD_TXT);
            logger.info("upload file success!");
            Map<String, List<String>> idsMap = fetchIDsFromFile(file, response);
           
            if (null == idsMap || idsMap.isEmpty()) {
                logger.error("cannot read data form file!");
                MessageUtils.outputJSONResult("empty", response);
                return;
            }
            logger.info("read upload file success!");
            List<String> casNumbers = idsMap.get("CAS");
            List<String> mdlNumbers = idsMap.get("MDL");
            if (casNumbers != null && !casNumbers.isEmpty() && mdlNumbers != null && !mdlNumbers.isEmpty()) {
                logger.error("It contains invalid data in upload file");
                MessageUtils.outputJSONResult("dataError", response);
                return;
            }
           
            if (casNumbers != null && !casNumbers.isEmpty()) {
                List<Long> ids = compoundBatchSearchService.getStructureIdsByCasNo(casNumbers);
                if (ids != null) {
                    request.getSession().setAttribute(Constants.RESULT_IDS, ids);
                }
            }
           
            if (mdlNumbers !=null && !mdlNumbers.isEmpty()) {
                List<Long> ids = compoundBatchSearchService.getStructureIdsByMdl(mdlNumbers);
                if (ids != null) {
                    request.getSession().setAttribute(Constants.RESULT_IDS, ids);
                }
            }
            MessageUtils.outputJSONResult("success", response);
           
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            MessageUtils.outputJSONResult("occurError", response);
        }
    }

 

spring中定义的upload部分:

<!-- upload file -->
<bean id="multipartResolver"         class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxInMemorySize">
            <value>20480</value>
        </property>
        <property name="defaultEncoding">
            <value>UTF-8</value>
        </property>
 </bean>

分享到:
评论
5 楼 liuyong_15 2012-05-09  
正在研究AjaxFileUpload 结合springMVC上传,楼主能传个Demo版不啊??先谢谢了
4 楼 JavaLike 2012-03-13  
gjlping 写道
您好
File file = FilePathHelper.uploadFile(mf, Constants.UPLOAD_TXT);
这个FilePathHelper 是在哪里API不存在,这个对需要指定包吗

那个类是我们项目中自定义的工具类
3 楼 JavaLike 2012-03-13  
Zale_zhy 写道
利用ajaxfileupload.js能获取到上传文件的存储路径吗
不可以的在本项目中用到的是spring中对的上传功能
2 楼 Zale_zhy 2011-10-13  
利用ajaxfileupload.js能获取到上传文件的存储路径吗
1 楼 gjlping 2011-05-19  
您好
File file = FilePathHelper.uploadFile(mf, Constants.UPLOAD_TXT);
这个FilePathHelper 是在哪里API不存在,这个对需要指定包吗

相关推荐

    jquery 插件ajaxfileupload与struts2结合 实现异步上传图片

    首先,我们要了解AjaxFileUpload是jQuery的一个插件,它通过Ajax技术实现了文件的无刷新上传。AjaxFileUpload的核心在于利用HTML5的FormData对象和XMLHttpRequest Level 2的特性,使得浏览器可以发送二进制数据到...

    jQuery插件AjaxFileUpload实现ajax文件上传

    在本文中,我们将深入探讨如何使用jQuery插件AjaxFileUpload来实现异步(Ajax)文件上传功能。AjaxFileUpload是一个非常实用的工具,它允许用户在不刷新整个页面的情况下上传文件,提供更好的用户体验。 首先,要...

    Asp.Net MVC+Jquery ajaxfileupload实现文件上传(v1.0.0)

    本文将详细介绍如何使用Asp.Net MVC框架与Jquery的ajaxfileupload插件实现一个兼容主流浏览器的文件上传解决方案。 首先,Asp.Net MVC是一个强大的Web应用程序开发框架,它允许开发者构建动态、数据驱动的网站。它...

    ajaxfileupload.js完整使用全套(带对应jquery+demo)

    2. **设置表单**:创建一个包含文件输入元素的表单。通常,我们会将`enctype`属性设置为`multipart/form-data`,因为这是处理文件上传的标准方式。 ```html &lt;form id="fileUploadForm" enctype="multipart/form-...

    WEB文件上传之JQuery ajaxfileupload插件使用(二)

    本文将详细介绍如何使用JQuery的ajaxfileupload插件实现异步文件上传,这在提升用户体验和处理大文件时尤其有用。ajaxfileupload是jQuery的一个扩展,它允许我们在不刷新页面的情况下完成文件的上传操作,使得交互...

    基于jquery , ajaxfileupload.js的封装之后的控件自动上传控件

    总之,基于jQuery和`ajaxfileupload.js`的文件上传控件,结合适当的前端和后端代码,能够创建出高效、用户友好的文件上传体验。通过`OurUpload`提供的资源,开发者可以快速集成这一功能,节省开发时间,同时确保文件...

    $.ajaxFileUpload 文件上传

    $.ajaxFileUpload 是一个jQuery插件,它提供了异步文件上传的能力,使得用户无需刷新页面即可完成文件提交,提高了用户体验。 $.ajaxFileUpload 的核心在于使用Ajax技术,它允许在后台与服务器交换数据并更新部分...

    ajaxFileUpload文件上传

    要使用`ajaxFileUpload`,首先确保引入了jQuery库和`ajaxFileUpload.js`插件文件。接着,按照以下步骤配置: ```html &lt;!-- HTML部分 --&gt; $(document).ready(function() { $("#uploadFile").ajaxFileUpload({ ...

    ajaxFileUpload上传图片预览总结

    AjaxFileUpload是一个JavaScript组件,它允许我们实现异步文件上传并提供预览功能,无需刷新页面。这篇文章将深入探讨如何使用AjaxFileUpload进行图片上传和预览。 首先,让我们了解什么是AjaxFileUpload。它是一个...

    240多个jQuery插件.doc

    jQuery不仅本身提供了丰富的API和强大的功能,还拥有大量的第三方插件,这些插件极大地扩展了jQuery的功能范围,使得开发者可以轻松地添加复杂的功能到自己的项目中,如动画、表单验证、文件上传等。下面将详细介绍...

    ajaxFileupload实现多文件上传功能

    AjaxFileupload基于jQuery库,利用HTML5的FormData对象和XMLHttpRequest Level 2的特性,实现了在后台处理文件上传而无需刷新页面。其核心思想是通过AJAX技术发送文件数据到服务器,接收响应,并通过回调函数处理...

    jQuery插件教程(搜罗了全部插件

    1. **AjaxFileUpload** - 实现异步文件上传,无需刷新页面即可完成文件提交。 2. **jQUploader** - 提供更丰富的上传界面,包括进度条、取消上传等功能。 3. **MultipleFileUpload plugin** - 支持多文件选择上传,...

    AjaxFileUpload Struts2 多文件上传

    本篇文章将深入讲解如何利用AjaxFileUpload与Struts2实现多文件上传,并结合jQuery进行前端交互。 首先,我们需要在项目中引入必要的库。Struts2提供了struts2-jquery-plugin,这是一个基于jQuery的插件,包含了...

    ajaxfileupload上传及解析xml

    AjaxFileUpload是基于jQuery的插件,它扩展了AJAX技术,允许用户在后台上传文件,无需刷新整个页面。要使用AjaxFileUpload,首先要在HTML页面中引入jQuery和AjaxFileUpload的JavaScript文件。确保在引入文件时,...

    经典海量jQuery插件 大家可以收藏一下

    - 文件上传(Fileupload)插件:这类插件允许用户通过界面上传文件,常见的有AjaxFileUpload、jQUploader和MultipleFileUploadplugin等。 - 表单验证(FormValidation)插件:为表单元素提供验证功能,确保用户输入...

    jquery ajaxfileupload异步上传插件

    在本文中,我们将探讨如何使用jQuery的ajaxfileupload插件实现异步文件上传,并结合Struts2框架进行处理。这个插件提供了一种方便的方法,允许用户在不刷新页面的情况下上传文件,提升用户体验。 首先,要使用...

    jquery php 文件异步上传

    文件上传通常有两种方式:传统的表单提交(Form)和异步(Ajax)方式。在"form.php"中,文件是通过HTML的`&lt;form&gt;`元素,配合`enctype="multipart/form-data"`属性来实现上传的。用户选择文件后,点击提交按钮,...

    240多个jQuery UI插件

    - **AjaxFileUpload**: 基于Ajax技术实现的文件上传插件,可以实现无刷新上传。 - **jQUploader**: 一款轻量级的文件上传插件,易于集成,适合快速开发。 - **MultipleFileUpload plugin**: 支持同时上传多个文件...

    在Web API中使用jQuery AJAX实现文件上传的例子

    本教程将详细介绍如何在ASP.NET Web API中结合jQuery的AJAX方法实现文件上传。 首先,我们需要在客户端创建一个HTML表单,用于用户选择要上传的文件。HTML表单通常包含一个`&lt;input type="file"&gt;`元素,用户可以通过...

Global site tag (gtag.js) - Google Analytics