Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   как передать изображение на сервер? (https://javascript.ru/forum/jquery/14958-kak-peredat-izobrazhenie-na-server.html)

FRIE 07.02.2011 12:34

как передать изображение на сервер?
 
использую jquery post.

к форме со всякими параметрами, названиями и описаниями приделал поле в которое вставлять картинку <input size='30' name='file' type='file' >
думал картинка передастся, но колбэк php код - if(!isset($_POST['file'])){echo"ok";} пишет ок, значит не пришла переменная.

jquery post не умеет кидать картинки? есть ли какое то решение чтобы одновременно шла форма с текстом и картинкой?

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

B@rmaley.e><e 07.02.2011 13:50

AJAX'ом (кроссбраузерно) нельзя передавать файлы. Используйте невидимый фрейм для этого.
Если Вы реализуете функционал под какой-то определенный браузер, Вам может помочь статья о FileAPI.

robinner 10.04.2011 19:40

А валидация?

B@rmaley.e><e 10.04.2011 22:24

Что "валидация"?

FINoM 11.04.2011 03:55

Цитата:

Сообщение от B@rmaley.e><e
AJAX'ом (кроссбраузерно) нельзя передавать файлы.

А можно подробнее о некроссбраузерной передаче?

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

B@rmaley.e><e 11.04.2011 09:12

FINoM, FileAPI

x-yuri 12.04.2011 02:08

Цитата:

Сообщение от FINoM
причем эти запреты относительно легко обходятся

можно конкретнее?

FINoM 12.04.2011 04:16

Цитата:

Сообщение от x-yuri
можно конкретнее?

Для кроссдоменного аякса — php скрипт-посредник.
Для сокетов — флеш.
Для передачи файлов — айфрейм.

x-yuri 12.04.2011 06:26

Цитата:

Сообщение от FINoM
Для кроссдоменного аякса — php скрипт-посредник.

это ты их так можешь обойти, а злоумышленник как?

Цитата:

Сообщение от FINoM
Для сокетов — флеш.

это другие сокеты, и почему именно в опере? В ff тоже отключили. И отключили из-за определенной уязвимости

Цитата:

Сообщение от FINoM
Для передачи файлов — айфрейм.

просто стандартопейсатели были так увлечены xml и прочими мульками, что совсем позабыли про простых смертных. Или тебя смущает, что javascript не может самопроизвольно получить доступ к любому файлу на клиенсткой машине?

FINoM 14.04.2011 18:29

Цитата:

Сообщение от x-yuri
это ты их так можешь обойти, а злоумышленник как?

А как? Я как раз этим вопросов задался недавно. Как разрешить одним серверам работать с данными через php и разрешить пользоваться данными с помощью ajax пользователям зашедшим на домен, и как запретить ajax с неразрешенных доменов и получение данных со стороны неразрешенного сервера? Про ajax всё понятно, используем Access-Control-Allow-Origin, а вот ограничение на получение данных со стороны сервера я не знаю как реализовать (учитывая пункт об ajax). Чтоб было проще разобраться в том, что я хотел бы реализовать, вот некоторая структура задачи:

Сервер A (a.com) - поставщик данных
Сервер B (b.com) - один из серверов который имеет право на доступ к данным
Сервер E (e.com) - не имеющий доступа к данным.

Пытаюсь придумать, как реализовать поддержку всех пунктов вместе:
1. Дать возможность пользователю, зашедшему на b.com использовать данные с сервера a.com через ajax
2. Разрешить серверу b.com получать данные на стророне сервера, например с помощью php
3. Запретить пользователю, зашедшему на e.com пользоваться данными, которы поставляет a.com
4. Запретить серверу e.com получение данных со стороны сервера

Цитата:

Сообщение от x-yuri
отключили из-за определенной уязвимости

Если я не ошибаюсь, в хроме уже достаточно давно работают сокеты и никому от этого плохо еще не стало.
Цитата:

Сообщение от x-yuri
это другие сокеты

Эм.. А какая разница? Используется ведь один протокол, просто там реализация в браузере нативная, а там через флеш.
Цитата:

Сообщение от x-yuri
Или тебя смущает, что javascript не может самопроизвольно получить доступ к любому файлу на клиенсткой машине?

Нет. Причем здесь это?


Часовой пояс GMT +3, время: 08:17.