Пытаюсь переслать картинку из файла, но она приходит частично, "бьется", что делать?
Бинарные файлы нужно открывать с ключем "b", иначе в некоторых случаях файл считается текстовым. Обычно такое происходит под Windows, но если в Вашей системе параметр "b" не требуется, то он будет игнорироваться, поэтому рекомендуется его все-таки употреблять. Пример:
<?
$fp = fopen("/home/rasmus/file.txt", "rb");
?>
Andy Ice, 2:5012/8.13
Почему при работе с csv-файлами теряются некоторые заглавные русские буквы?
Потому что csv-файл должен удовлетворять одному, главному условию: текстовые поля должны быть ограничены кавычками, т.е. пример такого плана:
1, "Фамилия Имя Отчество", "Должность"
Andy Ice, 2:5012/8.13
При попытке отдать через header("Location: somefile") файл с расширением pdf, doc, txt, IE открывает их в окне браузера. Как этого избежать?
При отдаче файла через header("Location: somefile"), web сервер отдает еще Content-type этого файла, который узнается по расширению файла. Информация о соответствии content-а расширению берется web сервером из конфигурационного файла mime.types. Броузеры в зависимости от получаемого Content-type знают что дальше делать с этим файлом. При этом расширение файла броузеру ни о чем не говорит, и если web сервер отдаст, к примеру, файл best_music.mp3 с Content-type: application/msword, то, если в системе клиента установлен MS Word, этот файл будет открыт им.
Для решения проблемы описанной в вопросе существуют два способа:
1. Отредактировать файл mime.types поставив желаемым расширениям файлов (которые надо скачивать, а не открывать) в соответствие тип application/octet-stream.
Hедостатки:
- этот путь годится, если Вы яляетесь администратором сервера;
- изменения коснутся всех файлов, тип которых Вы переопределили, даже тех, которые HАДО открывать в броузере.
2. Отдавать файл клиенту, не посредством header("Location: somefile"), а организовав собственную процедуру отдачи файла. При этом появляется возможность динамически менять Content-type, предоставив пользователю выбор, открыть ли файл в броузере или просто скачать, записав на диск.
Hедостатки:
- бОльшая нагрузка на сервер;
- бОльшие требования к объему RAM на сервере.
Serge V. Tarasov
Как заставить браузер предлагать сохранять файл с нужным названием, а не download.php?