如何重命名在目标c中捕获的图像?

时间:2011-11-18 05:34:05

标签: iphone objective-c uiimageview

在我的应用程序中,我需要捕获图像,并使用FTP将其保存在本地库和服务器上。现在我需要遵循图像名称的格式,同时将其保存在服务器上。我能够捕获并保存本地库中的图像。但我无法找到任何方法来更改图像的名称。假设我需要将其重命名为 Productname-UserId.png 有什么办法吗?请帮助。

谢谢。

2 个答案:

答案 0 :(得分:4)

UIImagePNGRepresentation(UIImage *)可能就是您正在寻找的东西。您可以将UIImage作为PNG文件保存在Application Documents文件夹中,然后将其上载到服务器。执行此操作的代码非常简单,因此如果您可以发布您尝试使用的代码,那么有助于理解并为您推荐解决方案。

这是我的代码中的一个简短剪辑,正是这样:

UIImage * image; // Some image you want to send

NSString * docDirWithSlash = [[self applicationDocumentsDirectory] stringByAppendingString:@"/"];
NSString * pngFile = [docDirWithSlash stringByAppendingString:file]; // <-- Change the string "file" to reflect the name you want.
[UIImagePNGRepresentation(image) writeToFile:pngFile atomically:YES];

// Send pngFile to the server here

applicationDocumentsDirectory的位置如下:

- (NSString *) applicationDocumentsDirectory
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    NSString *documentsDirectoryPath = [paths objectAtIndex:0];
    return documentsDirectoryPath;
}

答案 1 :(得分:0)

这里真正的问题是你希望文件名在哪里具体?在设备上或服务器上。如果设备使用Charles答案,否则你应该看看http协议(文件上传部分)。实际上,文件在本地设备上的名称并不重要,因为当您通过http将其发送到服务器时,您可以提供任何名称。这里棘手的部分是您上传到的服务器应该在保存该文件时考虑该参数。因此,如果您要上传到您没有亲自操作的服务器并且它会执行一些自我命名约定 - 您可能会陷入困境。如果它是你的 - 看看你如何在服务器端保存文件,如果你考虑到“文件名”参数...

。并且不要忘记将该参数传递给上传请求:)