PHP загрузить файл, используя PUT вместо POST - PullRequest
6 голосов
/ 19 мая 2010

Я прочитал кое-что об этом на PHP документах , но мне не ясно:

  1. У большинства браузеров (IE, FF, Chrome,Safari, Opera, ...) поддерживает этот PUT метод для загрузки файлов?

  2. Какой HTML-код нужно написать, чтобы браузер вызывал сервер через запрос PUT?Я имею в виду, нужно ли писать FORM с полем файла INPUT и просто заменить атрибут method="POST" на method="PUT"?

  3. В документах PHP (ссылка выше) они говорят, что запрос PUT намного проще, чем запрос POST при загрузке файла, наряду с этим преимуществом, какие другие преимущества / недостатки имеет PUT по сравнению с POST?

Ответы [ 4 ]

6 голосов
/ 19 мая 2010

Метод PUT нельзя использовать с . MSIE вообще не поддерживает его через графический интерфейс пользователя. Однако вы можете использовать XMLHttpRequest . Кажется, это определено в стандарте и WHATWG / HTML5. Моему браузеру (Opera) это явно нравится.

http://old.mnot.net/javascript/xmlhttprequest/ IE тоже может работать, как подсказывает короткий поиск в Google. И Firefox выглядит отлично. Не проверено Chrome или Webkit.

Сервер-сайт, вам нужен специально назначенный скрипт для обработки входящего запроса PUT. Посмотрите документы Apache. Правило mod_rewrite обычно может подойти. Общим преимуществом PUT является то, что не требуется кодирование / маршалинг файла в multipart / * mime-тип. Теоретически это позволяет загружать большие файлы более надежно. Хотя, если вы используете PHP, это вам не сильно поможет. Он предназначен для веб-серверов с поддержкой WebDAV и / или прямым доступом для записи файловой системы. (Apache может сохранить загруженные файлы сам, если вы используете это.)

1 голос
/ 19 мая 2010

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

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

Я бы не стал этим пользоваться. Слишком много возможных хлопот для небольшого реального выигрыша.

0 голосов
/ 19 мая 2010

Тот факт, что PUT редко используется для этой цели и поддерживается только основными браузерами, исключает его из возможного использования здесь.

0 голосов
/ 19 мая 2010

PUT не очень широко поддерживается браузерами и обычно не используется для интерактивных HTML-форм.

...