获取UIImage,将其转换为多部分图像字符串,写入文本文件iOS
Posted
技术标签:
【中文标题】获取UIImage,将其转换为多部分图像字符串,写入文本文件iOS【英文标题】:Get UIImage, convert it into multipart image string and write it into Text file iOS 【发布时间】:2016-11-21 11:44:50 【问题描述】:我需要做以下事情:
-
将 UIImage 转换为字节数组;
使用 multipart 获取字符串并将该字符串写入文本文件;
在该文本文件和剩余服务中调用 API
参数(请求)必须上传到服务器。
我试过了,但我无法得到应该写入文本文件的多部分字符串。
我是初学者,如果有人能建议我一种获取多部分图像字符串的方法,我将非常感谢。
提前致谢!
【问题讨论】:
尝试使用 multipart 发布请求。 请添加您尝试过的代码,但没有成功。 ***.com/questions/24250475/… 我正在尝试上面的链接,但没有得到我应该使用哪个 url,我拥有的 url 用于完整请求... 如何将 UIImage 分别转换为多部分文件?然后使用完整的请求参数上传该文件 【参考方案1】:使用下面这个可以将data
写入文件:我在控制台有print
写入路径的路径,通过finder -> goto finder
查看写入的文件,注意你的图片url是不是HTTP
前缀,如果是,请在您的Info.plist
中设置App Transport Security Settings
。
在objective-c
:
NSURLSession *session = [NSURLSession sharedSession];
NSURL *url = [NSURL URLWithString:@"https://sf-sponsor.b0.upaiyun.com/45751d8fcd71e4a16c218e0daa265704.png"]; // if http:please set `App Transport Security Settings` in your Info.plist
NSURLSessionTask *task = [session dataTaskWithURL:url
completionHandler:^(NSData *data, NSURLResponse *response, NSError* error)
NSLog(@"%@", [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true);
NSString *documentsDirectory = paths[0];
NSLog(@"%@", documentsDirectory);
NSFileManager * fm = [NSFileManager defaultManager];
BOOL ifsucess = [fm createFileAtPath:[NSString stringWithFormat:@"%@/file.data", documentsDirectory] contents:data attributes:nil];
if (ifsucess)
// success
else
// fail
];
[task resume];
在swift
:
/* swift */
let path:String = "https://sf-sponsor.b0.upaiyun.com/45751d8fcd71e4a16c218e0daa265704.png" // if http:please set `App Transport Security Settings` in your Info.plist
let url:NSURL = NSURL.init(string: path)!
let request = URLRequest.init(url: url as URL)
let task = URLSession.shared.dataTask(with: request as URLRequest) data, response, error in
let paths:NSArray = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) as NSArray
let documentsDirectory = paths.object(at: 0)
print(documentsDirectory)
//let appFile = "\(documentsDirectory)/MyFile.text" //
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
let path = dir.appendingPathComponent("file.data")
do
try data?.write(to: path, options: NSData.WritingOptions.atomic)
catch /* error handling here */
task.resume()
【讨论】:
您正在从远程 URL 下载图像并将其保存为文档目录中的 .data 文件?请添加您的理由,说明为什么它应该适用于 OP 明显不同的要求,以及为什么 OP 不应该使用多部分发布请求?以上是关于获取UIImage,将其转换为多部分图像字符串,写入文本文件iOS的主要内容,如果未能解决你的问题,请参考以下文章