iOS 富文本之图文混排(插入图片上传到服务器)

iOS 富文本之图文混排(插入图片上传到服务器),第1张

第一版,以实现功能为主,相比较简陋一点,多多包含,先上效果图

1.先修改键盘上的工具栏

2.相机的点击事件,也就是图片上传服务器的方法

3.上传服务器的相关操作

下面的方法是将富文本转换成纯文本的信息

以上是转换成纯文本,然后拼接上url操作,可以选择性忽略。

4.NSTextAttachment 延展,为NSTextAttachment添加一个属性(关键操作)

1.从服务器获取上传需要的 accessKeyId, accessKeySecret, securityToken;如果你们是本地直接配置,不需要从服务器拿直接省略。

2.配置OSSTask

3.1 上传图片

3.2 上传视频

iOS 11支持GIF文件了。那么怎么上传自己想要的GIF图片呢,

1.调用相册:UIImagePickerController 拿到代理返回的info数组。

2,最重要的一步,转为NSData(一般服务器以data 上传),用系统#import <Photos/Photos.h>

如果是iOS 11 以前,则可以用<AssetsLibrary/AssetsLibrary.h>

-( void )tranUpLoadImageGifWithImage:(NSDictionary<NSString *, id >*)info{

    // 上传gif

    //转为NSData

     if ( @available (iOS11.0, *)) {

        PHAsset *phAss = [info valueForKey:UIImagePickerControllerPHAsset]

        PHImageRequestOptions *options = [PHImageRequestOptions new]

        options.resizeMode = PHImageRequestOptionsResizeModeFast

        options.synchronous= YES

        PHCachingImageManager *mager = [[PHCachingImageManager alloc]init]  [magerrequestImageDataForAsset:phAssoptions:optionsresultHandler:^(NSData* _Nullable imageData,NSString* _Nullable dataUTI,UIImageOrientationorientation,NSDictionary* _Nullable info) {

    NSLog(@"能拿到:%@",imageData)

    //上传服务器的方法 

 [ self upLoadImageData:imageData]

        }]

    } else {

        // Fallback on earlier versions

    }

}

3. 拿到NSData,就能上传服务器啦

-( void )upLoadImageData:(NSData*)data{

    自己服务器上传地址 

    NSString*urlString = [NSStringstringWithFormat:@"%@",BASE_URL]

    NSDictionary *params = @{@"image_model":@"1"}

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]

    [ProgressHUD showLoading]

    [managerPOST:urlStringparameters:paramsheaders: nil constructingBodyWithBlock:^( id   _Nonnull formData) {

        NSString*str =@"image_file"

        NSString*fileName

        // 上传图片,以文件流的格式

        /**

         *filedata : 图片的data

         *name    : 后台的提供的字段

         *mimeType : 类型

         */

        fileName = [NSStringstringWithFormat:@"%@.gif", str]

        [formDataappendPartWithFileData:dataname:strfileName:fileNamemimeType:@"image/gif"]

    }progress: NULL success:^(NSURLSessionDataTask* _Nonnull task, id   _Nullable responseObject) {

        [ProgressHUDdismiss]

        //打印看下返回的是什么东西

        NSLog(@"上传图片成功:%@",responseObject)

        [ProgressHUDshow:@"图片上传成功!"]

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

        [ProgressHUDdismiss]

        [ProgressHUDshow:@"图片上传失败!"]

        NSLog(@"上传图片失败,失败原因是:%@", error)

    }]

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/183544.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-29
下一篇2023-03-29

发表评论

登录后才能评论

评论列表(0条)

    保存