springMvc+swfUpload实现异步文件上传(前台用纯html后台返回json)

之前在网上看了一下说只能返回ModelAndView,自己试了一下,其实不然


前台页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
   <title>SWFUpload Demos</title>
   <link href="css/default.css" rel="stylesheet" type="text/css" />
   <link rel="stylesheet" href="css/button.css" type="text/css" />
   <script type="text/javascript" src="js/swfupload/swfupload.js"></script>
   <script type="text/javascript" src="js/swfupload/handlers.js"></script>
   <script type="text/javascript">
      var swfu;
      window.onload = function () {
         swfu = new SWFUpload({
            upload_url: "/upload/swfupload.do",
            file_post_name:"filedata",
            post_params: {"name" : "zwm"},
            use_query_string:true,
            // File Upload Settings
            file_size_limit : "10 MB", // 文件大小控制
            file_types : "*.*",
            file_types_description : "All Files",
            file_upload_limit : "0",

            file_queue_error_handler : fileQueueError,
            file_dialog_complete_handler : fileDialogComplete,//选择好文件后提交
            file_queued_handler : fileQueued,
            upload_progress_handler : uploadProgress,
            upload_error_handler : uploadError,
            upload_success_handler : uploadSuccess,
            upload_complete_handler : uploadComplete,
            button_placeholder_id : "spanButtonPlaceholder",
            button_width: 180,
            button_height: 18,
            button_text : '<span class="button">请选择文件 </span>',
            button_text_style : '.button { font-family: Helvetica, Arial, sans-serif; font-size: 12pt; } .buttonSmall { font-size: 10pt; }',
            button_text_top_padding: 0,
            button_text_left_padding: 18,
            button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
            button_cursor: SWFUpload.CURSOR.HAND,

            // Flash Settings
            flash_url : "js/swfupload/swfupload.swf",

            custom_settings : {
               upload_target : "divFileProgressContainer"
            },
            // Debug Settings
            debug: false  //是否显示调试窗口
         });
      };
      function startUploadFile(){
         swfu.startUpload();
      }

   </script>
</head>
<body style="background-color: #C0D1E3; padding: 2px;">
<div id="content">
   <form>
      <div
            style="display: inline; border: solid 1px #7FAAFF; background-color: #C5D9FF; padding: 2px;">
         <span id="spanButtonPlaceholder"></span>
         <input id="btnUpload" type="button" value="上  传"
               οnclick="startUploadFile();" class="btn3_mouseout"
               />
         <input id="btnCancel" type="button" value="取消所有上传"
               οnclick="cancelUpload();" disabled="disabled" class="btn3_mouseout"
               />
      </div>
   </form>
   <div id="divFileProgressContainer"></div>
   <div id="thumbnails">
      <table id="infoTable" border="0" width="530" style="display: inline; border: solid 1px #7FAAFF; background-color: #C5D9FF; padding: 2px;margin-top:8px;">
      </table>
   </div>
</div>
</body>
</html>
后台controller:

package com.demo.controller;

import com.demo.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.Date;

@Controller
@RequestMapping("/upload")
public class UpLoadFileController {
     @ResponseBody
     @RequestMapping("/swfupload")
     public User fileUpload(HttpServletRequest request,@RequestParam("filedata")MultipartFile file) throws Exception {
         try {
             String uploadDir = request.getRealPath("/upload");
             File dirPath = new File(uploadDir);
             if (!dirPath.exists()) {
                     dirPath.mkdirs();
             }
             file.transferTo(new File(uploadDir + "/" + file.getOriginalFilename()));
         } catch (IOException e) {
             e.printStackTrace();
         }
         User user=new User(1,"张无忌",new Date());
         return user;
     }
}


源码地址:http://download.csdn.net/detail/fengqilove520/9671712

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值