Fix extention long length of file name
This commit is contained in:
parent
b5afc32d1b
commit
41214cccae
|
@ -11,6 +11,8 @@
|
||||||
#import "NSImage+WebCache.h"
|
#import "NSImage+WebCache.h"
|
||||||
#import "SDWebImageCodersManager.h"
|
#import "SDWebImageCodersManager.h"
|
||||||
|
|
||||||
|
#define SD_MAX_FILE_EXTENSION_LENGTH (NAME_MAX - CC_MD5_DIGEST_LENGTH * 2 - 1)
|
||||||
|
|
||||||
#define LOCK(lock) dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER);
|
#define LOCK(lock) dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER);
|
||||||
#define UNLOCK(lock) dispatch_semaphore_signal(lock);
|
#define UNLOCK(lock) dispatch_semaphore_signal(lock);
|
||||||
|
|
||||||
|
@ -253,6 +255,10 @@ FOUNDATION_STATIC_INLINE NSUInteger SDCacheCostForImage(UIImage *image) {
|
||||||
CC_MD5(str, (CC_LONG)strlen(str), r);
|
CC_MD5(str, (CC_LONG)strlen(str), r);
|
||||||
NSURL *keyURL = [NSURL URLWithString:key];
|
NSURL *keyURL = [NSURL URLWithString:key];
|
||||||
NSString *ext = keyURL ? keyURL.pathExtension : key.pathExtension;
|
NSString *ext = keyURL ? keyURL.pathExtension : key.pathExtension;
|
||||||
|
// File system has file name length limit, we need to check if ext is too long, we don't add it to the filename
|
||||||
|
if (ext.length > SD_MAX_FILE_EXTENSION_LENGTH) {
|
||||||
|
ext = nil;
|
||||||
|
}
|
||||||
NSString *filename = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%@",
|
NSString *filename = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%@",
|
||||||
r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10],
|
r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10],
|
||||||
r[11], r[12], r[13], r[14], r[15], ext.length == 0 ? @"" : [NSString stringWithFormat:@".%@", ext]];
|
r[11], r[12], r[13], r[14], r[15], ext.length == 0 ? @"" : [NSString stringWithFormat:@".%@", ext]];
|
||||||
|
|
Loading…
Reference in New Issue