KuzmenkoArtem, для таких файлов тем более расширение будет неактуальным, а с учетом кодировок и text/plain - не факт...
Так что из первичного для xml - еще более-менее по контенту можно однозначно понять, ну и json - подобным образом... ну а txt|csv - тут разве что парсить и если вдруг процент ошибок не превышает порога - считать что "да, это оно и было"
KuzmenkoArtem, просто понятие расширения как признак типа файла - это только у win в наследство от dos
Более другие системы - ориентируются на содержимое.
Соответственно файл photo (без расширения) окажется вполне-таки файлом фотографии например с мака. И мало того, если пользователь его сохранил на флешку и аплоадид из-под винды - mime окажется совсем не image/jpeg
Но вот чтение нескольких байт из начала файла, где встретится "яШяа" - ответит на вопрос что это jpeg, a "GIF89a" - что gif
Xander Milonovsky, ну можно еще чуть-чуть подождать и к замене кроме людей и окончательно сгоревшие мониторы...
ну и повторять итерации до полного просветления
maks78945, берете данные, вбиваете в excel и там сортируете, потом еще раз смотрите свои условия сортировки и ровно так же в том же порядке переносите их в order by
можно бытовые кухонные весы разобрать и глянуть что там и поковырять радиолюбительские форумы на предмет отзывов по разным тензонометрическим датчикам из практики.
EkZha, только вот архитектурно исходные жутко кривые. К примеру вообще никак не отслеживается например продажа по произвольной цене.
Нормальный вариант - в конкретной продаже должна фигурировать конкретная цена продажи (отражение реального факта), а цена, которая могла бы быть/должна была бы быть - условно-справочно для будущих отчетов по отклонениям фактических продаж от "плановых" и т.п.
Константин, что-то с терминологие беда-беда:
а) create database - создать базу на сервере (в том числе и локальном)
б) create table - создать таблиц(ы) в базе данных из п. а
в) insert into … - заполнить данными таблицы из п. б
Так что из первичного для xml - еще более-менее по контенту можно однозначно понять, ну и json - подобным образом... ну а txt|csv - тут разве что парсить и если вдруг процент ошибок не превышает порога - считать что "да, это оно и было"