Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2008, 13:11
Новичок на форуме
Отправить личное сообщение для Трактор Посмотреть профиль Найти все сообщения от Трактор
 
Регистрация: 08.06.2008
Сообщений: 3

JavaScript как файл закодировать base64?
Доброго дня, товарищи.
Прошу помочь начинающему.

Есть необходимость отправить файл на сервер в составе xml. Сервер ожидает файл в виде base64 строки в качестве значения одного из узлов xml. Метод, позволяющий получить файл в виде base64 строки нашёл только в Firefox'е 3.
Есть ли метод javascript, который будет работать и в ИЕ?
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2008, 14:12
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Очень нетипичная у вас задача, более того, если файл бинарный, то получить его в javascript и кодировать в base64, насколько я знаю, невозможно. (Не учитывая тот метод, который вы нашли в Firefox 3). Получается, что ответ на ваш вопрос - нет. Возможно, для IE можно попробовать работать через ActiveX компоненты, но я думаю, что стандартные настройки безопасности запретят получать локальные файлы напрямую в JavaScript.

Для передачи файлов на сервер обычно используется POST запроc. Так что единственным решением будет использование "проксимизации" через серверный скрипт:

посылается файл на сервер методом POST -> возвращается его base64 код -> в теле запроса из JavaScript отправляется на сервер. (Тройной траффик)

Или посылается на сервер файл методом POST вместе в xml с плейсхолдером в месте, где нужно вставить base64 код -> сервер отправляет запрос с файлом в теле xml через сокетное соединение.
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2008, 15:03
Новичок на форуме
Отправить личное сообщение для Трактор Посмотреть профиль Найти все сообщения от Трактор
 
Регистрация: 08.06.2008
Сообщений: 3

Большое спасибо за ответ. Буду знать что штатного решения не существует.
Прогонять файл на сервер/обратно/опять на сервер это суровое решение, которое следует трижды обдумать перед реализацией.
Программировать ещё и серверную часть в мои планы не входило. Буду думать.
Ответить с цитированием
  #4 (permalink)  
Старый 10.06.2008, 13:22
Новичок на форуме
Отправить личное сообщение для Трактор Посмотреть профиль Найти все сообщения от Трактор
 
Регистрация: 08.06.2008
Сообщений: 3

Вот как я делал это в FF3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!--debug="true" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Файл в base64</title>
<script type="text/javascript">
function Послать(что){
	var Файл = document.getElementById("fileUp").files[0]
	var Содержимое = document.getElementById("Содержимое")
	Содержимое.appendChild(document.createTextNode(Файл.getAsDataURL()))
	//alert("Уж послала так послала ..." + Файл)
}
</script>
</head>

<body>
	<input type="file" class="upload" id="fileUp"> </input>
	<input type="button" value="Отправить" onclick="Послать(this)"> </input>
<p id="Содержимое">
</p>
</body>
</html>

Последний раз редактировалось Трактор, 11.06.2008 в 16:48.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить данные в файл? Возможно такое на JavaScript? Forgott Общие вопросы Javascript 35 26.06.2015 19:11
как сделать гиперсылку на объект javascript??? kos_walker Общие вопросы Javascript 3 30.09.2008 06:58
Скачать файл с использованием javascript Rockie Общие вопросы Javascript 12 26.09.2008 11:54
Как считать файл с винта и вставить его в mht-файл ? potkin Общие вопросы Javascript 4 26.08.2008 14:17
Как защитить файл js от скачивания с сервера? slon Общие вопросы Javascript 2 02.07.2008 01:14