Есть такая проблема.
Мне нужно “по пути” проверить, что за чертовщину загрузил пользователь. Вот форма:
Типичная, стандартная форма. imgupload.php делает кучу проверок и загружает.
Но как проверить “на ходу”? Страница php, подобная imgupload.php у меня есть – она только проверяет статус файла и возвращает результат проверки.
Сама проблема: в PHP для принятия того, что выбрал пользователь (в плане файла) используется массив $FILES, а не $POST. Это меня и насторожило и возникло подозрение по поводу реализации:
//ajaxobj - XmlHttpRequest объект
ajaxobj.onreadystatechange = handleresponse; //какая-то функция, очевидно, что она делает
ajaxobj.open('POST', 'checkimg.php',true);
ajaxobj.send( ??? ) // А вот здесь я хз че писать!
ajaxobj.onreadystatechange = handleresponse; //какая-то функция, очевидно, что она делает
ajaxobj.open('POST', 'checkimg.php',true);
ajaxobj.send( ??? ) // А вот здесь я хз че писать!
Помогите, пожалуйста! И сорри за столь длинный пост.
30 марта 2010 в 22:04
думаю если вы вспомните как работают онлайн сканеры на вирусы, известных антивирусов, то поймете, что файл придется сначала полностью загрузить и лишь потом проверить
30 марта 2010 в 21:01
Надеюсь ты уже понял, что извращаться и проверять что либо на стороне клиента по большей части бессмысленно.
30 марта 2010 в 20:01
еще есть проверка на размер изображения.
> и будет отправлять запросы на сервер окольными путями, разумеется.
стоит проверка на тип файла и в скрипте аплоада.
30 марта 2010 в 16:04
> Имя и путь к файлу на компе пользователя
Это противоречит privacy policy. Короче, никак не получишь.
А какая тебе разница, какой полный путь у файла, который отправляет пользователь?
Если тебе все проверки надо сделать на стороне клиента – используй flash, я тебе уже писал в соседней теме.
Но ваще какой смысл этих проверок – я не знаю. Адекватный пользователь вряд ли "по случайности" будет отправлять, скажем, mp3 вместо картинки, в то же время злоумышленник клал три кучи на твою flash/js/еще какую – обертку, и будет отправлять запросы на сервер окольными путями, разумеется.
30 марта 2010 в 16:03
Может, поможет вот это?
//vkontakte.ru/topic-912_23006018
а вот пара сссылок интересных из этой темы
//habrahabr.ru/blogs/php/44610/
//habrahabr.ru/blogs/php/44615/
30 марта 2010 в 12:03
>> потестировал на фаерфоксе с document.getElementById('fileInput').value:
выдает только название файла, не полный путь.
В этом и вся загвоздка.
30 марта 2010 в 12:01
потестировал на фаерфоксе с document.getElementById('fileInput').value:
выдает только название файла, не полный путь.
Возможно есть метод, что-то типа openFileDialog
В общем гугл в помосч
30 марта 2010 в 10:05
стой-стой. мне не нужно загружать файл на сервер используя аякс. мне нужно лишь передать это странице (checkimg.php) имя и путь к файлу на компе пользователя.
30 марта 2010 в 10:04
//www.google.ru/search?hl=ru&newwindow=1&am…=
вообще посоветую использовать фреймворки, например jQuery