iOS 提交form表单,上传图片

之前不会用,总感觉很难,用后感觉不是太难,本文只是简单的讲一下怎么使用的,

//实例话对象
 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.requestSerializer.timeoutInterval = 20;
    manager.responseSerializer = [[AFHTTPResponseSerializer alloc] init];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

    //在请求头里 添加自己需要的参数
    NSString *token = [[YXLoginStatusTool sharedLoginStatus] getTokenId];
    [manager.requestSerializer setValue:token forHTTPHeaderField:@"id"];

//请求地址
    NSString *URLSTR = @"";

    [manager POST:URLSTR parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

      //转成data

      self.justimagedata = UIImagePNGRepresentation(pickerImagePic);

//按照表单格式把二进制文件写入formData表单
        [formData appendPartWithFileData:self.justimagedata name:@"" fileName:@"" mimeType:@"image/png"];

        [formData appendPartWithFileData:self.backimagedata name:@"" fileName:@"" mimeType:@"image/png"];

    } progress:^(NSProgress * _Nonnull uploadProgress) {

        YXLog(@"++++%@+++",uploadProgress);

    }  success:^(NSURLSessionDataTask *task, id responseObject) {

          YXLog(@"responseObject == %@--++--%@----", [self getResponseObjcWithTask:responseObject],[self getRespodHeaderWithTask:task]);

        if ([[self getRespodHeaderWithTask:task][@"Status"] isEqualToString:@"1"]) {

            //成功
        }else{

            [YXAlearMnager ShowAlearViewWith:[self getRespodHeaderWithTask:responseObject][@"errorMsg"] Type:2];
        }
        [YXNetworkHUD dismiss];

    } failure:^(NSURLSessionDataTask *task, NSError *error) {

        [YXNetworkHUD dismiss];

         YXLog(@"发送失败+++++%@++++%@",error,[self getRespodHeaderWithTask:task]);

        [YXAlearMnager ShowAlearViewWith:@"头像更换失败" Type:2];
    }];
//** 获取响应头 */
- (id)getRespodHeaderWithTask:(NSURLSessionTask *)task
{
    NSHTTPURLResponse *respond = (NSHTTPURLResponse *)task.response;
    return respond.allHeaderFields;
}
-(id)getResponseObjcWithTask:(id )responseObect{
    id json;
    NSError *error;
    json = [NSJSONSerialization JSONObjectWithData:responseObect options:0 error:&error];
    if (error) {
        json = [[NSString alloc] initWithData:responseObect encoding:NSUTF8StringEncoding];
    }
    return json;
}
时间: 2024-12-07 16:06:44

iOS 提交form表单,上传图片的相关文章

ajax提交form表单资料详细汇总

一.ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单.通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统普通的网页(不使用ajax)如果需要更新内容,必须重载整个网页页面. 二.通过ajax提交form实现的登录实例: <body> <h1 align="center">用户登录</h1> &

Jquery提交form表单

前台代码 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Js_submit.aspx.cs" Inherits="Ctrip.Corp.Report.OfflineSite.CorpReportSetting.Js_submit" %> 2 3 <html xmlns="http://www.w3.org/1999/xhtml

使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html

使用ajax提交form表单,包括ajax文件上传 前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的ajax $.ajax({ url:"${pageContext.request.contextPath}/public/testupload", type:"post", data:{username:username},

按下回车默认提交form表单问题

最近开发中碰到一个问题,项目中有几个列表展示页面,允许用户通过查询条件模糊查询数据.用户录入关键字后点击回车会调用查询方法根据关键字查询,原先功能没有问题,但是最近发现在查询输入框中按下回车会直接刷新页面不调用查询方法.检查发现有人在查询模块新增了一个form表单,找了很多和form表单相关资料才发现当form表单内只有一个type="text"类型的<input>标签时按下回车默认会提交form表单.解决方法很简单就是在form表单内新增一个隐藏的type="t

通过php jq ajax 提交form表单

参考http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0619/13568.html html <div id="contact_form"> <form name="contact" method="post" > <label for="name" id="name_label">姓名</label

jquery的ajax提交form表单方式总结

方法一: function AddHandlingFeeToRefund() { var AjaxURL= "../OrderManagement/AjaxModifyOrderService.aspx"; alert($('#formAddHandlingFee').serialize()); $.ajax({ type: "POST", dataType: "html", url: AjaxURL + '?Action=' + 'Submit

使用js提交form表单的两种方法

提交form表单的时候瑶族一些简单的验证,验证完后才能提交,避免无效提交. 1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的头部插入一个js方法: function checkUser(){ var result = document.getElementById("userid").value; var password = document

ajax()使用serialize()提交form表单

jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也可以直接选择form将其序列化,如: <form id="form"> <ul class="register_content_right_form_one"> <li id="register_content_on" style="margin-top: 16px;">

js获取上传文件后缀名(附js提交form表单)

代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <script> function check_file()  {   var strFileName=form1.FileName.value;   if (strFileName=="")   {     alert(&