ios 文件上传到SpringMVC

ios代码:
-(void)sendImg:img:(UIImage *)image{

 //请求地址
    NSMutableString *url = [[NSMutableString alloc] init];
    [url appendString:[UtilTool getHostURL]];
    [url appendString:@"savePic"];
    
    NSString *TWITTERFON_FORM_BOUNDARY = @"AaB03x";
    //分界线 --AaB03x
    NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
    //结束符 AaB03x--
    NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];
    
    NSMutableString *body = [[NSMutableString alloc] init];

[body appendFormat:@"%@\r\n",MPboundary];

  //请求参数
    [body appendFormat:@"Content-Disposition: form-data;name=\"%@\"\r\n\r\n",@"token"];

  //参数值
    [body appendFormat:@"%@\r\n", [UtilTool getToken]];
    
    NSData *imageData = UIImagePNGRepresentation([UtilTool changeImg:image max:1136]);
    
    //声明myRequestData,用来放入http body
    NSMutableData *myRequestData;
    //将body字符串转化为UTF8格式的二进制
    myRequestData=[NSMutableData data];

  //上传文件
    [body appendFormat:@"%@\r\n",MPboundary];
    [body appendFormat:@"Content-Disposition: form-data; name=\"uploadFile\"; filename=\"%@\"\r\n",@"temp.png"];
    [body appendFormat:@"Content-Type: image/png\r\n\r\n"];
    [myRequestData appendData:[body dataUsingEncoding:NSUTF8StringEncoding]];
    
    [myRequestData appendData:imageData];
    
    //声明结束符:--AaB03x--
    NSString *end=[[NSString alloc]initWithFormat:@"\r\n%@",endMPboundary];
    //加入结束符--AaB03x--
    [myRequestData appendData:[end dataUsingEncoding:NSUTF8StringEncoding]];
    
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:url]];
    [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
    //    [request setTimeoutInterval:[DataStore getHttpTimeout]];
    [request setHTTPMethod:@"POST"];
    //设置HTTPHeader中Content-Type的值
    NSString *cttype=[[NSString alloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];
    //设置HTTPHeader
    [request setValue:cttype forHTTPHeaderField:@"Content-Type"];
    //设置Content-Length
    [request setValue:[NSString stringWithFormat:@"%ld", [myRequestData length]] forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody:myRequestData];
    [NSURLConnection sendSynchronousRequest:request returningResponse:nil error: nil];
}

后台代码:
@RequestMapping(value = {"/savePic"}, method = RequestMethod.POST, produces= { "application/json" })
    @ResponseBody
    public String savePic(MultipartFile uploadFile, HttpServletRequest request) throws IOException, JSONException{
        JSONObject object=new JSONObject();
        if(uploadFile != null){            //上传文件
            String path = request.getSession().getServletContext().getRealPath("filePath");
            String fileName = uploadFile.getOriginalFilename();
            String fileType = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
            
            File toFile = null;
            File targetFile = new File(fileName);
            //修改文件名字,格式取当前时间
            toFile = new File(path, DateVaildator.simpleDateFormat(new Date(), "yyyyMMddHHmmss") + fileType);
            targetFile.renameTo(toFile);
            if (!toFile.exists()) {
                toFile.mkdirs();
            }
            //保存至我们服务器
            uploadFile.transferTo(toFile);
            try {
                String downloadUrl="filePath/"+toFile.getName();
                object.put(Constants.RESULT_STATUS, Constants.RESULT_STATUS_ERROR);
                object.put(Constants.RESULT_MSG, "保存失败");
            } catch (Exception e) {
                e.printStackTrace();
                object.put(Constants.RESULT_STATUS, Constants.RESULT_STATUS_SUCCESS);
                object.put(Constants.RESULT_MSG, downloadUrl);
            }
            toFile.delete();
        }
        return object.toString();
    }

时间: 2024-11-05 07:06:39

ios 文件上传到SpringMVC的相关文章

ios 文件上传

ASIHTTPRequest 框架支持文件的上传: 文件的上传使用ASIFormDataRequest; NSString *s = @"文件传输"; NSURL *url = [NSURL URLWithString:@"http://localhost:8080/text"];//传输地址 ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; NSStringEncoding

ios 文件上传, post数据

一.文件下载 获取资源文件大小有两张方式 1. HTTP HEAD方法 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:kTimeout]; request.HTTPMethod = @"HEAD"; [NSURLConnection sendAsynchronousRequest:request queue:self.myQueue

iOS文件上传

iOS文件上传 在ios里来上传文件的方法很多,比如把文件base64直接post,本来打算这样做的,发现各种不爽,服务端收起来也各种不爽,所以干脆用标准的http上传协议mutipart来搞个上传就好,具体代码如下 头文件 ? 1 2 3 4 5 6 7 8 9 10 11 @interface HttpRequest : NSObject     +(id)upload:(NSString *)url widthParams:(NSDictionary *)params;     @end 

文件上传 使用springmvc

package com.foo.controller; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframe

前后端分离跨服务器文件上传-Java SpringMVC版

近来工作上不上特别忙,加上对后台java了解一点,所以就抽时间,写了一个java版本的前后端分离的跨服务器文件上传功能,包括前后端代码. 一.Tomcat服务器部分 1.Tomcat服务器 单独复制一份Tomcat,用来作为文件服务器 1.1 xml文件: 需要在该Tomcat的conf目录下的web.xml文件的大概100行添加如下部分: 1.2 server.xml文件: 需要在该Tomcat的conf目录下的server.xml文件做一些端口的修改 1.3 Tomcat下建立文件夹 在该T

SpringMVC框架(3)--文件上传与SpringMVC拦截器

SpringMVC文件上传原理: SpringMVC文件上传步骤: 1.pom.xml中添加坐标 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <g

springMVC文件上传与下载(六)

1..文件上传 在springmvc.xml中配置文件上传解析器 <!-- 上传图片配置实现类,id必须为这个 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 上传图片的大小 B 5M 1*1024*1024*5--> <property name

SpringMVC返回JSON数据以及文件上传、过滤静态资源

返回JSON数据 在如今前后端分离的趋势下,后端基本不需要再去关心前端页面的事情,只需要把数据处理好并通过相应的接口返回数据给前端即可.在SpringMVC中,我们可以通过@ResponseBody注解来返回JSON数据或者是XML数据. 这个注解的作用是将控制器方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,也就是HTTP响应的内容体,一般我们都是用来返回JSON数据,因为默认是按JSON格式进行转换的. 需要注意的是,在使用此注解之后不会再走视图解

h5 input file ajax实现文件上传

<input type="file" accept="image/*" height="0" class="file_input" id="file_input_ss_0" multiple>  文件域 遇到的几个BUG 已经解决 1 多选文件域,如果没有上传成功或已上传成功,再次点击文件域名选择图片时,会累积上次的文件. 例如 第一次上传1.jpg  第二次点击上传 2.jpg 第二次的上传结