2010-11-16 4 views
0

Прежде всего, это не вопрос о том, как я могу использовать http-клиент на сервере, это больше о JS.«сохранить как» html на стороне сервера

У меня есть охраняемая территория на месте (пусть говорят/myprotected /), все css и изображения на ней. Я хочу, чтобы html опубликовал все это (пусть говорят/htmlconverter). И на стороне сервера, наконец, преобразуйте его в режим офлайн-страницы. Что-то вроде «сохранить как» в браузере. Вот код HTML только текст

function submitForm(){ 
var htmlelement = document.getElementById("html"); 
htmlelement.value = document.getElementById("source").innerHTML; 
document.forms["innerForm"].submit(); 

} .....

<form id="innerForm" method="post" action="/htmlconverter"> 
    <input type="text" id="html" name="html" style="display:none"/> 
    <input type="button" value="submit" onclick="submitForm()"/> 
    </form> 

Есть ли способ, чтобы отправить все ресурсы, в том числе и IMG CSS на сервере?

Добавлено: Я нахожу эту тему на сериализации изображений Get image data in JavaScript?

Для CSS я попытаюсь AJAX назвать источник CSS и добавить ответ в виде текста на новую должность.

+0

Так что давайте посмотрим, понимаю ли я, вы хотите сохранить свой собственный сайт? Это должно распространяться среди пользователей? –

+0

Жесткая часть не отправляет ресурсы .. она отображает страницу на сервере, чтобы она выглядела так, как видит клиент. – Hamish

+0

Камило Мартин, я упростил задачу. Наконец, я хочу преобразовать его в pdf. Сайт не является статичным и основан на закрытой платформе. – chro

ответ

1
  1. Добавить идентификатор в <html> сам тег, например. <html id="MyHTML">.

  2. Отправить свой внутреннийHTML на сервер.

  3. На сервере, анализировать необработанный HTML и CSS извлечения файлов по разбору «HREF» атрибут <link rel="stylesheet" ... /> и изображений путем анализа «SRC» атрибут <img> тегов. Должно быть возможным использование регулярных выражений.

+0

Я согласен с 1 и 2. Но как отправить отправку изображений на сервер? – chro

+0

@chro: # 3 зависит от языка на стороне сервера, о котором вы не упоминали до сих пор. Например, ASP.NET имеет класс WebClient, позволяющий сохранять удаленное изображение (по URL-адресу) на серверный диск. –

+0

ОК, серверная сторона J2EE и Apache Commons HTTPClient может выполнять эту работу. Как вы можете получить доступ к удаленному изображению, если они находятся в защищенном контексте? Вы можете писать на любом языке на стороне сервера – chro

0

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

Браузер не может размещать такие вещи, как данные изображения и тела CSS, которые связаны со страницей.

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

+0

Я все еще надеюсь, что это не так – chro

+0

по крайней мере, я могу отправлять изображения в html5 – chro

Смежные вопросы