springmvc 使用ajx上传文件 不设置form enctype

最近在做一个小项目 碰到这个问题 解决方案如下

     1.js代码如下 获取当前form 转换为formdata ajax提交到后台

var form = $("#importForm");
var formData =new FormData($scope._window.find("#importForm"));
$.ajax({
                           type:"POST",
                         data:formData,
                         processData:false,
                         contentType:false,
                        url:$scope.webpath.p0path+"/cps-p0-web/importpiccontroller/importPickticket",
                        success:function(data){
                           alert("上传成功");
                        },
                        exception:function(data,textStatus){

                            }
                    });

后台代码解析

@ResponseBody
    @RequestMapping(value = "/importPickticket")
    public ResponseModel importPickticket(HttpServletRequest request,HttpServletResponse response) throws BussinessException{
        ResponseModel responseModel = new ResponseModel();
        try{            //上传文件后保存文件
            String filePath = FileUpload.fileUpload(request, response);

            responseModel.setSuccess(true);
        }catch (BussinessException e) {

        }catch (Exception e) {

}return null;
        }
        return null;
    }
//FileUpload 代码
public class FileUpload {

public static String fileUpload(HttpServletRequest request, HttpServletResponse response) {
try {
//文件服务器名称
StringBuffer rename = new StringBuffer();
//
ServletContext servletContext = request.getSession().getServletContext();
//获取服务器保存路径
String pathUrl = servletContext.getRealPath(PropertyPlaceholder.getProperty("fileUploadPath").toString());
//解析器解析request的上下文
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(servletContext);
//先判断request中是否包涵multipart类型的数据
if (multipartResolver.isMultipart(request)) {
// 再将request中的数据转化成multipart类型的数据
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
// 获取文件名
Iterator<String> iter = multiRequest.getFileNames();
while (iter.hasNext()) {
MultipartFile file = multiRequest.getFile((String) iter.next());
if (file != null) {
rename.append(new Random().nextInt(99999)).append("_").append(System.currentTimeMillis()).append(file.getOriginalFilename());
File localFile = new File(pathUrl + "/" + rename.toString());
// 写文件到本地
file.transferTo(localFile);
}
}
}
return pathUrl + "/" + rename.toString();
} catch (Exception e) {
throw new BussinessException("FileUpload.fileUpload.BusinessException", e);
}
}
}
时间: 2024-07-28 22:54:28

springmvc 使用ajx上传文件 不设置form enctype的相关文章

springMVC+jsp+ajax上传文件

工作中遇到的小问题,做个笔记 实现springMVC + jsp + ajax 上传文件 HTML <body> <form id="myform" method="post" > 登录名<input type="text" name="loginName" /> <br> 上传录音<input type="file" name="record

【springmvc】springmvc中如何上传文件

使用到的组件:可自行根据情况选择版本 <!--上传依赖包--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <!--commons-upload依赖包begin-->

SpringMVC+jquery.uploadify 上传文件

前言 以前用Asp.net MVC+uploadify上传文件,最近学习SpringMVC,所以就用SpringMVC+uploadify做个上传文件的demo. 刚开始用form表单的方式提交,在Controller Action中用@RequestParam MultipartFile file就能拿到上传文件信息.后我直接使用uploadify的方式上传,接口没有做任何调整,上传的过程中报http400, 客户端的请求不符合接口的要求,表单post提交时报文参数是以Form Data方式,

fileupload上传文件限制设置

使用fileupload控件上传文件时,当文件大一点的时候就会报错,导致网站崩溃,可以进行如下设置解决问题: 在web.config的system.web节中添加:<httpRuntime executionTimeout="90" maxRequestLength="40960"  appRequestQueueLimit="100"/> executionTimeout 是上传的等待时间.单位是秒 maxRequestLength

springmvc利用jqueryupload上传文件,后台处理方法

public void importIdentifySchemeFile(Integer id,Integer type,HttpServletRequest request, HttpServletResponse response){ PrintWriter out = null;          try {              //初始化变量              InputStream stream = null;              String ret_fileNa

SpringMVC使用CommonsMultipartResolver上传文件

DispatcherServlet并没有实现任何解析multipart请求数据的功能,它将该任务委托给了Spring中MultipartResolver策略接口的实现,通过该接口的实现类来解析multipart请求中的内容.从Spring3.1开始,Spring内置了两个MultipartResolver的实现供我们选择: StandardServletMultipartResolver 依赖于Servlet3.0对multipart请求的支持(始于Spring3.1) CommonsMulti

SpringMVC使用StandardServletMultipartResolver上传文件

DispatcherServlet并没有实现任何解析multipart请求数据的功能,它将该任务委托给了Spring中MultipartResolver策略接口的实现,通过该接口的实现类来解析multipart请求中的内容.从Spring3.1开始,Spring内置了两个MultipartResolver的实现供我们选择: StandardServletMultipartResolver 依赖于Servlet3.0对multipart请求的支持(始于Spring3.1) CommonsMulti

SpringMVC表单上传文件+表单数据

本次遇到的需求是:在用户提交表单数据的时候,同时上传文件.并且表单数据传到后台可以组成一个pojo controller层的方法定义如下: public Object apply(HttpServletRequest request, @RequestParam("file") MultipartFile file, Application application) { } 对于上传的文件的接收使用:@RequestParam("file") MultipartFi

异步上传文件(jquery.form)+进度条+上传到ftp服务器

最近写了一个小项目需要上传文件显示进度条到ftp,总结一下分享 我用的是jQuery.form.js上传 ftp服务器,自己百度去搭建很简单的 Talk is cheap.Show me your code.         GitHub上面的源码:https://github.com/Vinkong/learngit aspx页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Def