Возможно ли реализовать задумку? Есть загрузчик, и есть база данных файлов, в которой хранится md5 файла Можно ли как то сделать так, что бы при выборе файла, сразу же шла проверка на наличие такого файла в базе данных? Т.е. к примеру делаю обзор файла, выбираю его, беру md5 файла, и прогоняю хешь по базе. А то сейчас стоит проверка и только после заполнения всех полей и нажатием кнопки загрузить скрипт убивает процесс если файл существуют, а так бы можно было сразу увидеть что файл есть и доп поля заполнять не нужно. Я как понимаю все аяксом делать надо, есть ли готовые решения или просто посмотреть примерную реализацию? И как можно принять md5 файла сразу после его выбора?
печалька =( я как то выдел на некоторых сайтах есть аякс проверка на существование логина/мыла, думаю можно глянуть там реализацию, но вот как с md5, ведь если файл много весит, то его загрузка долгая и если даже сделать автоматическую подгрузку файла, то юзер за это время успеют подготовить и заполнить все поля =(
Это совсем разные вещи). Проверит можно по размеру файла(будут осечки на маленьких файлах и меньше осечек на больших), либо проверять только загрузив файл на сервер
не, по весу не вариант, нужно по md5 сверять я хотел аяксам посмотреть сам принцип работы, с ним у меня тогу совсем. А сделать хотел так, в такой последовательность, если уж сразу ни как не получить мд5 файла Выбрал файл, аяксом он подгружается и передает данные в файл, например check.php, файл в свою очередь создает мд5 с полученной картинки и делает поиск по базе данных, если найдено совпадение, то выводит сообщение об этом, если нет, то все в порядке. Или я фантаст еще тот? xD
Ну это не фанатизм, это лишняя работа). md5 либо crc32. Вообще с какой целью проверять на уникальность? Пускай грузят%), а там уже проверять будет php скрипт, добавленный в cron. Пускай проверяет, если нашел 2 файла ошинаковых---один удаялет и делает симлинк на со второго на место удаленного)
какие проблемы-то? проверяем доступно-ли fileapi (на большинстве современных браузеров - доступно), если да - считаем мд5 локально, на компе пользователя, без закачки на серв если нет - аяксом сливаем файл на сервак и там проверяем мд5
r3l0c, не так не пойдет, так как к файлу создается новая страница, и получится что дубль файла, а кроном если буду удалять, у юзеров вопросы будут, куда делся их контент присвоенный именно им по их айдишнику =) Shumomer, можно по подробнее об этом, очень заинтересовало
можно проверять имя файла. врятли кто-то сильно много переименовывает файлы одинаковые смотря какой размер файла...
Я не совсем все понял, что где проверять?) Хотите проверить выбранный файл со стороны пользователя?( Ничего не понял. Где выбираете файл и что хотите проверить?) Или вы вписываете в поле md5 хеш и проверяете по базе есть такой файл на сервере или нет?
В любом случае будет смотреться по названию и расширению... А так нужно после выбора файла отправить запрос на $.get() и на сервере проверить этот GET уже через md5, то что пришло от пользователя, после выбора файла, и если такой файл уже существует с таким названием, то как он загрузится?(
на HTML5 можно получить доступ к содержимому и посчитать любые штуки. только блин не известно сколько это займёт.
Да не, я про javascript. Когда жмешь выбрать файл и выбираешь, то у тебя в этот момент отправится $.get() с названием выбранного файла... А на сервере проверится.=) Если файл не существует, отправится $.post(), если уже существует, подсветит контейнер с выбором файла, красным цветом или скажет что уже файл есть где-то и исчезнет через 5 секунд если так захочется.=) И записать предварительно в js переменных, если тыкают один и тот же файл уже в выбранном и этот файл не существует, то не отсылать запрос, также и с выбранным, если уже такой существует и он выбран, чтобы опять не отсылать запрос, записать его как существует и выбран, чтобы не тыкали опять выбрать его же, выбрали другой и он уже не равен записанному, то отсылаем запрос и проверяем существует файл или нет.=)