Ios 来自服务器的Jpeg已损坏

Ios 来自服务器的Jpeg已损坏,ios,xcode,uiimage,jpeg,Ios,Xcode,Uiimage,Jpeg,我有一个服务器,它接收图像并将它们发送到客户端。问题是,每当我从iPad发送图像时,图像都会被破坏,但如果我从模拟器发送图像,图像就不会被破坏。在uiimagejpegresentation上,我使用了0.2的压缩,但它仍然损坏 我甚至尝试过这种方法(但没有成功): -(BOOL)是jpeg有效的:(NSData*)jpeg{ if([jpeg长度]

我有一个服务器,它接收图像并将它们发送到客户端。问题是,每当我从iPad发送图像时,图像都会被破坏,但如果我从模拟器发送图像,图像就不会被破坏。在
uiimagejpegresentation
上,我使用了0.2的压缩,但它仍然损坏

我甚至尝试过这种方法(但没有成功):

-(BOOL)是jpeg有效的:(NSData*)jpeg{
if([jpeg长度]<4)返回否;
常量字符*字节=(常量字符*)[jpeg字节];
如果(字节[0]!=0xFF | |字节[1]!=0xD8)返回否;
如果(字节[[jpeg长度]-2]!=0xFF | |字节[[jpeg长度]-1]!=0xD9)返回否;
返回YES;
}

我做错了什么?

根据服务器软件的不同,通常会有大小限制。如果你发送的图像在iPad上自然比iPhone大,这可能就是问题所在


要测试是否存在这种情况,请尝试将图像缩小一半,然后将
JPEGRep
发送到服务器。(祝你好运,这些都是棘手的问题)

有人知道吗?问题是,如果我从模拟器发送图像,图像不会损坏,但如果我做相反的事情,那么它会损坏。所以我认为缩小图像不是一个好的选择。此外,图像不能缩小,因为用户会看到图像模糊。缩小图像是一种测试机制,用于确定服务器是否存在大小问题。同样,当以前遇到同样的问题时,我已经从应用程序上传了一个相同的图像(作为资源加载),并查看是否所有设备的行为都类似
- (BOOL)isJPEGValid:(NSData *)jpeg {
    if ([jpeg length] < 4) return NO;
    const char * bytes = (const char *)[jpeg bytes];
    if (bytes[0] != 0xFF || bytes[1] != 0xD8) return NO;
    if (bytes[[jpeg length] - 2] != 0xFF || bytes[[jpeg length] - 1] != 0xD9) return NO;
    return YES;
}