【Swift】上传图片-NSURLSession

let request:NSMutableURLRequest = NSMutableURLRequest();
        request.URL = NSURL(string: "https://api.weibo.com/2/statuses/upload.json");
        request.HTTPMethod = "POST";
        request.timeoutInterval = 15;
//设置表单分隔符
        let boundary:NSString = "----------------------1465789351321346";
        let contentType = NSString(format: "multipart/form-data;boundary=%@", boundary);
        request.addValue(contentType as String, forHTTPHeaderField: "Content-Type");

let body:NSMutableData = NSMutableData();
body.appendData(NSString(format: "--%@\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!);
        //此处的filename必须要以.png结尾
        body.appendData(NSString(format: "Content-Disposition:form-data;name=\"%@\";filename=\"\(filename).png\"\r\n", "userfile").dataUsingEncoding(NSUTF8StringEncoding)!);
        var imagenow = image
 //图片压缩
        if(size.width != 0){
            imagenow = imageCut(imagenow, size: size)
        }else{
        }
        let imageData:NSData = UIImageJPEGRepresentation(imagenow, 0.01)!;
        body.appendData("Content-Type:image/png\r\n\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
        body.appendData(imageData);
        body.appendData("\r\n".dataUsingEncoding(NSUTF8StringEncoding)!)
        //写入尾部
        body.appendData(NSString(format: "--%@--\r\n", boundary).dataUsingEncoding(NSUTF8StringEncoding)!);

//3.创建网络会话
let session = NSURLSession.sharedSession()
//4.创建网络上传任务
let task  = session.uploadTaskWithRequest(request, fromData: body) { ( da:NSData?, co:NSURLResponse?, e:NSError?) -> Void in

 }
 task.resume()
/**
    压缩图片的方法,

    :param: originalImage 原图
    :param: size          指定图片最后的大小

    :returns: 压缩后图片
    */
    class func imageCut(originalImage:UIImage,size:CGSize)->UIImage{

        UIGraphicsBeginImageContext(size)

        originalImage.drawInRect(CGRectMake(0, 0, size.width, size.height))

        let standardImage1 = UIGraphicsGetImageFromCurrentImageContext()

        UIGraphicsEndImageContext()

        return standardImage1

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值