美文网首页
IOS上传图片-swift和OC

IOS上传图片-swift和OC

作者: huxq_coder | 来源:发表于2017-07-13 15:21 被阅读0次

    服务器端:java 服务器端参考链接:http://www.cnblogs.com/fjsnail/p/3491033.html

    /*
         * 采用spring提供的上传文件的方法
         */
        @RequestMapping(value = "/springUpload.json", method = RequestMethod.POST , produces = "application/json;charset=UTF-8")
        @ResponseBody
        public String springUpload(HttpServletRequest request)
                throws IllegalStateException, IOException {
            System.out.println("进入方法............................");
            long startTime = System.currentTimeMillis();
            // 将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
                    request.getSession().getServletContext());
            // 检查form中是否有enctype="multipart/form-data"
            if (multipartResolver.isMultipart(request)) {
                // 将request变成多部分request
                MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
                // 获取multiRequest 中所有的文件名
                Iterator iter = multiRequest.getFileNames();
    
                while (iter.hasNext()) {
                    // 一次遍历所有文件
                    MultipartFile file = multiRequest.getFile(iter.next()
                            .toString());
                    //传递参数值
                    String str = multiRequest.getParameter("str");
                    System.out.println("str:" + str);
                    if (file != null) {
                        System.out.print("file----");
                        System.out.println(file.getName());
                        System.out.println(file);
                        String path = "E:/springUpload"
                                + file.getOriginalFilename();
                        // 上传
                        file.transferTo(new File(path));
                    }
    
                }
    
            }
            long endTime = System.currentTimeMillis();
            System.out.println("方法三的运行时间:" + String.valueOf(endTime - startTime)
                    + "ms");
            return "/success";
        }
    
    

    swift Alamofire上传

     func testFileUpload() {
            
            let url = "http://192.168.0.15:8080/dcfdServer/device/springUpload.json"
            let imageData = UIImagePNGRepresentation(self.image)
            
            Alamofire.upload(multipartFormData: { (multipartFormData) in
    //传递多个图片,多次添加即可
                multipartFormData.append(imageData!, withName: "12.png", fileName: "image", mimeType: "image/png")
                let strData = String("str")?.data(using: String.Encoding.utf8)
                //传递参数
                multipartFormData.append(strData!, withName: "str")
            }, to: url) { (result) in
                switch result {
                case .success(request: let request, streamingFromDisk: true, streamFileURL: nil):
                    request.responseString(completionHandler: { (response) in
                        debugPrint(response)
                    })
                case .failure(let error):
                    debugPrint(error)
                default: break
                }
            }
            
        }
    

    OC上传:

    - (void)uploadImages:(NSArray *)images{
        AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        manager.requestSerializer = [AFHTTPRequestSerializer serializer];
        manager.responseSerializer = [AFHTTPResponseSerializer serializer];
        NSDictionary *dict = @{@"str": @"str....."};
        NSString *url = @"http://192.168.0.15:8080/dcfdServer/device/springUpload.json";
        [manager POST:url parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
            
            for (int i = 0; i < images.count ; i++) {
                UIImage *image = images[i];
                NSData *data = UIImagePNGRepresentation(image);
                [formData appendPartWithFileData:data name:[NSString stringWithFormat:@"%d.png",i] fileName:[NSString stringWithFormat:@"fileName%d.png",i] mimeType:@"image/png"];
                
            }
            
        } progress:^(NSProgress * _Nonnull uploadProgress) {
            NSLog(@"------%f",1.0 * uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);
        } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
            NSLog(@"-----success-%@",responseObject);
            
        } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"-----error-%@",error);
            
        }];
    }
    
    

    相关文章

      网友评论

          本文标题:IOS上传图片-swift和OC

          本文链接:https://www.haomeiwen.com/subject/xowwhxtx.html