Скачать часть HTML-страницы как текст (PHP) - PullRequest
0 голосов
/ 28 мая 2009

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

Размер экспортируемого кода увеличивается, и мы хотим поощрять пользователей делать это чаще, поэтому маршрут копирования / вставки больше не нужен. (Не говоря уже о том, что моя цепочка xterm-> ssh-> screen-> vi плохо вставляет 250K символов)

Итак, проблема в следующем: у меня есть текстовая область, в которой был экспортирован код, и я хочу предоставить кнопку «Загрузить этот код в файл»

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

  • Создайте сценарий, который получает указанный текст в виде POST и отправляет его обратно с правильными заголовками содержимого. Это нежелательно, потому что мы будем POSTING 250K, что будет медленнее, чем:

  • Создайте сценарий, восстанавливающий текстовую область, и предоставьте кнопку исходной странице, которая попадает в сценарии и загружает файл. Это вариант, к которому я склоняюсь

  • Как-нибудь использовать Javascript и, возможно, можно пропустить сервер все вместе и просто отправить $ ('. Exported'). Val () в браузер с правильными заголовками? Не уверен, как это сделать атм.

Так что, если у кого-то есть предложения, которые были бы хорошими, возможно, я что-то упускаю. Спасибо!

edit: Загрузить содержимое текстовой области в виде файла, используя только Javascript (без серверной части)

Этот вопрос говорит, что маршрут JS невозможен (вероятен)

Ответы [ 4 ]

1 голос
/ 28 мая 2009

Я бы выбрал вариант 2. Самый простой и быстрый. Другие немного надуманные.

Если вы выберете вариант 2, зачем вообще оставлять текстовую область?

1 голос
/ 28 мая 2009

Я бы предложил следующее: заставьте вашу кнопку заменить весь DOM страницы вашим текстом. После этого пользователь сможет просто нажать Ctrl + S или ⌘S. Не совсем то, что вы хотите, но все же ярлык.

Полагаю, вы можете сделать это с помощью следующего (jQuery):

$ (document.body).html ($ ('#textarea-id').html)

(не проверено)

0 голосов
/ 28 мая 2009

Параметры:

  • ТЕКСТ УЖЕ В СЕРВЕРЕ:

    • MAKE A GETFILE.PHP, который отвечает на этот текст в файле.
  • ТЕКСТ КЛИЕНТА

    • РАЗМЕСТИТЕ ТЕКСТ НА GETFILE.PHP и ответьте на файл.
    • РАЗМЕСТИТЕ ТЕКСТ ДЛЯ GETFILE.PHP, сохраните файл и предоставьте ССЫЛКУ на ЗАГРУЗКУ (тогда вы можете удалить файл или нет, в зависимости от ваших потребностей)

Вот пример этого http://www.osix.net/modules/article/?id=773

0 голосов
/ 28 мая 2009

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

Вот пример того, как это может выглядеть:

if (isset($_GET['download'])) {
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment;filename="dump.data"');
    echo $data;
    exit;
} else {
    echo '<textarea>', htmlspecialchars($data), '</textarea>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...