Вы получите это сообщение об ошибке в Xcode 7 (Swift 2), если подкласс объявляет соответствие протоколу, который уже унаследован от суперкласса. Пример:
class MyClass : CustomStringConvertible {
var description: String { return "MyClass" }
}
class Subclass : MyClass, CustomStringConvertible {
override var description: String { return "Subclass" }
}
Журнал ошибок показывает:
main.swift:10:27: error: redundant conformance of 'Subclass' to protocol 'CustomStringConvertible' class Subclass : MyClass, CustomStringConvertible { ^ main.swift:10:7: note: 'Subclass' inherits conformance to protocol 'CustomStringConvertible' from superclass here class Subclass : MyClass, CustomStringConvertible { ^
Удаление соответствия протокола из декларации подкласса решает проблему:
class Subclass : MyClass {
override var description: String { return "Subclass" }
}
Но суперкласс должен объявить соответствие явно, это не будет автоматически выведено из существования свойства description
.
Отправьте следующие заголовки прежде, чем произвести файл:
header("Content-Disposition: attachment; filename=\"" . basename($File) . "\"");
header("Content-Type: application/octet-stream");
header("Content-Length: " . filesize($File));
header("Connection: close");
@grom: Интересный о 'application/octet-stream' типе MIME. Я не знал об этом, всегда только что использовали 'application/force-download':)
Вот пример передачи обратно PDF.
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
header('Content-Transfer-Encoding: binary');
readfile($filename);
@Swish я не находил тип контента применения, чтобы сделать что-либо различное (протестированный в IE и Firefox). Существует ли причина того, что не был передан фактический тип MIME обратно?
Также в руководстве PHP Hayley Watson отправленный:
, Если Вы хотите вынудить файл быть загруженным и сохраненным вместо того, чтобы быть представленным, помнят, что нет такого типа MIME как "application/force-download". Корректный тип для использования в этой ситуации является "application/octet-stream", и использование чего-либо еще просто полагается на то, что клиенты, как предполагается, игнорируют нераспознанные типы MIME и используют "application/octet-stream" вместо этого (ссылка: Разделы 4.1.4 и 4.5.1 из RFC 2046).
Также соответственно IANA там является не зарегистрированным типом application/force-download.