Вот здесь
http://otvety.google.ru/otvety/threa...b9d1f974&pli=1 задан вопрос о невозможности отдать файлы пользователю.
У меня такая же проблема, но код, который предоставлен не помогает. Помогите, пожалуйста. Вот мой участок кода:
if(!file_exists($filename))
{
echo("<br>Не могу открыть файл<br>Попробуйте использовать только латинские символы в имени файла.</td></tr></table></center></BODY></HTML>");
exit;
}
$fsize = filesize($filename);
$fd = @fopen($filename, "rb");
if(!$fd)
{
echo("<br>Не могу открыть файл<br>Попробуйте использовать только латинские символы в имени файла.</td></tr></table></center></BODY></HTML>");
exit;
}
$content = fread($fd, $fsize);
fclose($fd);
$count = preg_match_all('/\x4d\x54\x68\x64\x5c\x30\x5c\x30\x5c\x30\x06/', $content, $matches); //На самом деле при просмотре через HexView32 такие данные: 4d 54 68 64 00 00 00 06
if($count<>1)
{
echo "<br>Файл не является Standard MIDI File Format 0 или Format 1</td></tr></table></center></BODY></HTML>";
exit;
}
В нем условие $preg_match_all выполняется, т.е. при заданом поиске комбинации $count равняется 1. Вот в такой вид он преобразовывает файл при отдаче пользователю, хотя на сервере файл нормальный.