У меня была такая же проблема, и я исправил ее, отправив заголовок Content-Length
до Content-Disposition
.
header('Content-Type: video/mp4');
header("Content-Transfer-Encoding: Binary");
header("Content-Length: ".filesize($file_url));
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url);
Вот быстрая и грязная реализация. Не проверено.
NSString *letters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-(NSString *) randomStringWithLength: (int) len {
NSMutableString *randomString = [NSMutableString stringWithCapacity: len];
for (int i=0; i<len; i++) {
[randomString appendFormat: @"%C", [letters characterAtIndex: arc4random_uniform([letters length])]];
}
return randomString;
}
Вы также можете просто сгенерировать UUID. Хотя они и не являются действительно случайными, они сложны и уникальны, что делает их случайными для большинства применений. Сгенерируйте один как строку, а затем возьмите диапазон символов, равный переданной длине.