pihel / cash

Home Bookkeeping on ExtJS 4, PHP 5, SQLite 3
http://buh.skahin.ru
38 stars 13 forks source link

Открытие файлов без предварительного сохранения #43

Closed deseven closed 9 years ago

deseven commented 9 years ago

Браузеры могут показывать картинки и pdf сразу по ссылке. Для этого просто нужно слать корректный Content-Type. Обычно это делается с помощью finfo_file(), но для этого нужен PHP 5.3+, а в требованиях указан PHP 5, поэтому сделал вот так, только для актуальных форматов.

deseven commented 9 years ago

Упс, забыл вернуть Content-Disposition в случае дефолтного Content-Type. Исправлю. Но вообще принцип такой сойдет или все же лучше finfo_file()?

pihel commented 9 years ago

Для совместимости я бы использовал функцию mime_content_type . Но у меня сомнения в необходимости, чем предпросмотр облегчит жизнь пользователю?

deseven commented 9 years ago

Когда я открываю добавленную запись к которой прикреплена фотография (например чека), я хочу быстро увидеть этот чек, а не сохранять его себе куда-либо. Если я сразу хочу сохранить файл, то я просто щелкну правой кнопкой и выберу "сохранить". А какие варианты использования ссылки на картинку предполагали вы?

pihel commented 9 years ago

Я вас понял, с прикрепленными чеками это имеет смысл.

Когда делал только скачку, я думал о безопасности, чтобы не допустить автозапуска в браузере. Но если сам пользователь прикладывает файлы и сам же в своей бухгалтерии их открывать, то в этом нет ничего страшного.

Может всеже переделаете на mime_content_type? Может еще какието типы файлов у пользователя могут открываться в браузере.

deseven commented 9 years ago

Сделаю сегодня, новым пулл-реквестом. mime_content_type() если php < 5.3, иначе finfo_file()