将url转换为NSData

时间:2016-11-10 07:22:53

标签: ios objective-c nsdata

我想在服务器上传录音。

我的文件网址是:

file:///Users/xantatech/Library/Developer/CoreSimulator/Devices/77F4D768-1F04-4390-B60F-F1FE79388653/data/Containers/Data/Application/87C457FA-1A9F-4CA9-A651-6A3D411A0B7E/Documents/myAudio0.mp3

我的代码是:

NSData* data = [NSData dataWithContentsOfURL:audioURL options:NSDataReadingUncached error:&error];

但数据为零。

6 个答案:

答案 0 :(得分:1)

请尝试以下代码

NSString *audioURLString = @"file:///Users/xantatech/Library/Developer/CoreSimulator/Devices/77F4D768-1F04-4390-B60F-F1FE79388653/data/Containers/Data/Application/87C457FA-1A9F-4CA9-A651-6A3D411A0B7E/Documents/myAudio0.mp3";
NSString *sendStr = [[audioURLString absoluteString] stringByReplacingOccurrencesOfString:@"file:///private" withString:@""];
NSData *data = [[[NSData dataWithContentsOfFile:sendStr]]];
祝你好运.....

答案 1 :(得分:0)

使用此代码从Document文件夹中获取数据:

if([[NSFileManager defaultManager] fileExistsAtPath:filepath)
{
   NSData *data = [[NSFileManager defaultManager] contentsAtPath:filepath];
}
else
{
   NSLog(@"File not exits");
}

答案 2 :(得分:0)

你只需要这样做:

NSURL *imgPath = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"png"];
NSString *path = [imgPath absoluteString];  
NSData *data = [NSData dataWithContentsOfURL: [NSURL URLWithString:path];

答案 3 :(得分:0)

试试这个

NSData* data =[[NSData alloc]init];
data = [NSData dataWithContentsOfFile:[NSURL URLWithString:path]];

答案 4 :(得分:0)

跑步后:
文件:///用户/ xantatech /库/开发商/ CoreSimulator /设备/ 77F4D768-1F04-4390-B60F-F1FE79388653 /数据/容器/数据/应用/的" 87C457FA-1A9F-4CA9-A651- 6A3D411A0B7E" /Documents/myAudio0.mp3
大胆的文字" 87C457FA-1A9F-4CA9-A651-6A3D411A0B7E"可能会改变;
您应该始终使用该方法获取sandBox中的路径:

NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject] stringByAppendingPathComponent:@"myAudio0.mp3"];

答案 5 :(得分:0)

你可以使用这个:

NSData *data = [NSData dataWithContentsOfURL:yourURL];