IOS 我要上传头像 现在的问题是 能传成功 但是服务器那 图片打不开 说我传上去的Str不对

IOS 我要上传头像 现在的问题是 能传成功 但是服务器那 图片打不开 说我传上去的Str不对,第1张

//图片转字符串

-(NSString *)UIImageToBase64Str:(UIImage *) image

{

NSData *data = UIImageJPEGRepresentation(image, 1.0f)

NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]

return encodedImageStr

}

//字符串转图片

-(UIImage *)Base64StrToUIImage:(NSString *)_encodedImageStr

{

NSData *_decodedImageData = [[NSData alloc] initWithBase64Encoding:_encodedImageStr]

UIImage *_decodedImage = [UIImage imageWithData:_decodedImageData]

return _decodedImage

}

1、网络请求中常用的有Get请求,Post请求,还有Head、Put、Delete、Options、Trace、Connect等

GET获取指定资源

POST向指定资源提交数据进行处理请求,在RESTful风格中用于新增资源

HEAD获取指定资源头部信息

PUT替换指定资源(不支持浏览器操作)

DELETE删除指定资源

OPTIONS允许客户端查看服务器的性能

TRACE回显服务器收到的请求,主要用于测试或诊断

CONNECT预留给能够将连接改为管道方式的代理服务器(HTTP代理使用)

2、上传图片在网页中最常用的就是POST请求了,将图片编码到POST请求体(body)中,通过请求数据一起发送到服务器上;

3、在iOS开发中,图片上传的请求体非常难写,格式要求非常严格,出一点错误都会造成上传失败,或请求数据失败,先看格式:

--Boundary+72D4CD655314C423

Content-Disposition: form-dataname="uploadFile"filename="001.png"

Content-Type:image/png

Content-Transfer-Encoding: binary

... contents of boris.png ...

--Boundary+72D4CD655314C423--

这是一个不带其他任务参数,body中只有一张图就要写成这样

分别说明一下:

--Boundary+72D4CD655314C423 // 分割符,以“--”开头,后面的字随便写,只要不写中文即可

Content-Disposition: form-dataname="uploadFile"filename="001.png" // 这里注明服务器接收图片的参数(类似于接收用户名的userName)及服务器上保存图片的文件名

Content-Type:image/png // 图片类型为png

Content-Transfer-Encoding: binary // 编码方式

// 这里是空一行,必不可少!!

... contents of boris.png ... // 图片数据部分

--Boundary+72D4CD655314C423-- // 分隔符后面以"--"结尾,表明结束

1、简单的AF就有上传的方法

2、上传文件可以用multipart-formdata格式上传,具体看后台接口的配置。这个格式的使用。这是我写的一篇测试,根据微博的一个开放接口测试这种格式的使用。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存