我正在努力从imagePicker获取文件路径并将其发送到服务器。
这是尝试传递本地路径客户端:
NSData *webData = UIImagePNGRepresentation(info[UIImagePickerControllerOriginalImage]);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *localFilePath = [documentsDirectory stringByAppendingPathComponent:@"test.png"];
[webData writeToFile:localFilePath atomically:YES];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager POST:url.absoluteString
parameters:@{@"path": localFilePath}
progress:nil
success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
... //results always in error
这是收到路径密钥的后端代码(在JavaScript中):
var fs = require('file-system');
file {
data: fs.readFileSync(path),
}
但是,我总是会遇到这样的错误:
错误:ENOENT:没有这样的文件或目录,打开'/ Library / Developer / CoreSimulator / Devices ...
我的JS代码有问题吗?或者我应该使用其他方法来获取文件路径? 如果有人能帮助我,我会很高兴。
P.S。其他流行的现有StackOverflow答案在获取文件路径时会产生相同的错误代码。
答案 0 :(得分:0)
这是不可能的。您需要创建该图像的数据并使用multipart将其上载到服务器。 我希望这个链接适合你:
How to get UIImage from local url and post the image to server ?
答案 1 :(得分:0)
要么我误解了这个问题,要么就是在尝试做不可能的事。
设备上的路径(在本例中为模拟器)无法供服务器访问,因为它只存在于设备上。
如果您想要传递实际图片,您需要在请求中发送数据本身,您无法让服务器获取它的路径并通过互联网进入设备以获取它
this question的已接听答案是如何将图像数据附加到AFNetworking请求的示例。不幸的是,我对服务器的了解还不够多,但是我希望你能够以不同的方式获得它,这只是原始图像数据而不是文件路径。