我正在努力从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:没有这样的文件或目录,打开"/库/开发人员/核心模拟器/设备...
我的JS代码有问题吗?或者我应该使用什么其他方法来获取文件路径?如果有人能在这里帮助我,我会很高兴。
附言其他流行的现有StackOverflow关于获取文件路径的答案会引起相同的错误代码。
这是不可能的。您需要创建该图像的数据,并使用多部分将其上传到服务器。我希望这个链接对你有用:
如何从本地网址获取UIImage并将图像发布到服务器?
要么我误解了这个问题,要么你试图做不可能的事情。
服务器无法访问设备上的路径(在本例中为模拟器(,因为它仅存在于设备上。
如果要传递实际图像,则需要在请求中发送数据本身,不能让服务器获取其路径并通过Internet到达设备以获取它。
这个问题的公认答案是如何将图像的数据附加到AFNetworking请求的示例。不幸的是,我对服务器的了解不够多,无法在那里提供太多帮助,但我希望您能够以与从请求中获取路径相同的方式获取它,它只是原始图像数据而不是文件路径。