获取UIImage,将其转换为多部分图像字符串,并将其写入文本文件iOS
我需要做以下工作:获取UIImage,将其转换为多部分图像字符串,并将其写入文本文件iOS,ios,objective-c,uiimage,Ios,Objective C,Uiimage,我需要做以下工作: 将UIImage转换为字节数组 使用multipart获取字符串并将该字符串写入文本文件 调用API,其中包含该文本文件和剩余服务 参数(请求)必须上载到服务器 我试过了,但是我无法获得应该写入文本文件的多部分字符串 我是一个初学者,如果有人能向我推荐一种获取多部分图像字符串的方法,我将非常感谢 提前谢谢 使用下面的方法可以将数据写入文件:我在控制台中有打印写入路径的路径,通过finder->goto finder检查写入的文件,注意您的图像url是否为HTTP前缀,如果是,
提前谢谢 使用下面的方法可以将
数据
写入文件:我在控制台中有打印
写入路径的路径,通过finder->goto finder检查写入的文件
,注意您的图像url是否为HTTP
前缀,如果是,请在Info.plist
中设置应用程序传输安全设置
在目标-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,我拥有的url是用于完整请求的…如何将UIImage单独转换为多部分文件?然后上传该文件和完整的请求参数,您正在从远程URL下载图像并将其保存为documents dir中的.data文件?请添加您的理由,说明为什么它适用于OPs明确不同的要求,为什么OPs不应该使用多部分post请求?