Перевод файла в бинарный вид в JavaScript
Как первести в JavaScript'е файл, скажем с картикой, в бинарный вид, чтобы можно было его потом POST-запросом перекинуть?
Что-то я не примомню, что бы такое было возможно. Картинка и так является бинарным файлом. Даже банальный текстовой файл является бинарным, т.к. на диски записывается в виде двоичных данных.
Да, и в самом деле, всё уже переведено, просто (если ты на пхп делаешь) функцие file() прочитай картинку в массив, потом объедени этот массив с строку, вроде эта ф-ия еimplode(), и отправь пост-запросом. Ну в общем как-то так.
ChesnoK, прочти тему 3 раза и ты поймешь, почему твой ответ был бессмысленным.
Ай блин, точно. А если не секрет то зачем тебе это?
PS.: прежде чем задать вопрос, постарайся активировать свой головной мозг и попробовать найти ответ на свой вопрос самостоятельно. Опыт показал, в жизни это может очень сильно помочь.
Ты вот сам ответь на такой вопрос: нафига тебе это делать через JavaScript если у тебе есть пхп, а если ты хочешь взять эту картинку с компа какого-то чувачка, то утебя ничего не выйдет, т.к. путь к картинке у тебя прописан например так "х:/картинка.жпг", так вот JavaScript эту картинку искать будет на серванте, а не на компе чувачка. Так что делай как тебе сказали в твоём другом посте.
Предлагаю модераторам закрыть этот бред "двух поэтов"... Оба оппонента абсолютно не понимают сути обсуждаемого вопроса
Есть обсолютно конкретный вопрос на который требуется дать абсолютно конкретный ответ. И ВСЕ.
Я как принцесса, ждущая прынца на белом коне, который знает ответ.
JavaScript не умеет работать с содержимым файлов. Твой вопрос - намеренное усложнение, поиск проблемы там где ее нет. JavaScript - клиентский язык. он не умеет работать с файлами, памятью, процессами, сетью, системными прерываниями и т.д. Область его действий ТОЛЬКО документ в браузере и не более того.
Извини за стеб, но любой файл в конечном виде набор двоичных кодов, т.е. бинарный. Перекинуть post'ом можно и js файл. Что тебе надо? Объясни понятно, может ты вообще хочешь, что б js файл стал исполняемым, как файл exe.
А сейчас, лишь флуд растет как снежный ком.
Извини за стеб, но бинарными файлами считаются все НЕ ТЕКСТОВЫЕ. То есть с одной стороны ты конечно прав - все файлы в итоге по сути последовательность битов, но в данном контексте имеется ввиду тип файла. Текстовым же файлом считается файл содержащий ТОЛЬКО текст в той или иной кодировке, без каких-либо служебных заголовков. Вот например .htm файл является текстовым, а .doc или .pdf уже бинарным
Ситуацию я уже во-втором посте темы обрисовал. Так что давайте сами тут флудить не будет? Хорошо? ([COLOR="Silver"]вопрос риторический!! на него не отвечать, кто не понял[/COLOR]).
[HTML]
<script type="text/javascript">
...
/* тут описание переменных */
...
if(document.all) xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
else if(XMLHttpRequest) xmlhttp = new XMLHttpRequest();
else alert("XMLHttpRequest не работает!");
if(xmlhttp){
xmlhttp.open("POST", "example_upload.php", false);
xmlhttp.setRequestHeader("Content-Type", "multipart/form-data; boundary=1BEF0A57BE110FD467A");
xmlhttp.setRequestHeader("Content-Length", "2000");
formData = "--1BEF0A57BE110FD467A\r\nContent-Disposition: form-data; name='mark'\r\n\r\n'" + markForm.value + "'\r\n --1BEF0A57BE110FD467A\r\nContent-Disposition: form-data; name='uploadfile'; filename='"+file.value+"'\r\nContent-Type: application/octet-stream\r\n\r\n" + <????????> + "\r\n--1BEF0A57BE110FD467A--\r\n";
</script>
<form name="uploadForm" method="post" enctype="multipart/form-data">
<input name="mark" type="text" />
<input type="file" name="uploadfile" />
<input name="Button" type="button" value="Upload File" onclick="sendHttp();"/>
[/HTML]
Итак это кусок кода, отвечающего за формирование и отправку POST запроса посредством JS и XMLHttpRequest.
Что надо?
Насколько всем известно GET-запрос отправит данные в виде:
http://.../example_upload.php?file=<путь к файлу в URL кодировке>&mark=<значение поля mark>&button=Upload%20File
POST-запрос выглядит координально по другому:
--1BEF0A57BE110FD467A
<переход строки>
Content-Disposition: form-data; name='mark'
<переход строки>
<переход строки>
<значение поля mark>
<переход строки>
--1BEF0A57BE110FD467A
<переход строки>
Content-Disposition: form-data; name='uploadfile'; filename='путь к файлу в URL кодировке>'
<переход строки>
Content-Type: application/octet-stream
<переход строки>
<переход строки>
[COLOR="DarkRed"]<ВНИМАНИЕ! ТУТ ДОЛЖЕН БЫТЬ ФАЙЛ В БИНАРНОМ ВИДЕ, а не просто путь к этому файлу>[/COLOR]
<переход строки> --1BEF0A57BE110FD467A--
<переход строки>
-----------------------------------------------
Итак. Для тех кто в теме (ChesnoK, к тебе это не относится).
Первый вопрос остается в силе.
Побочный вопрос: если вместо текста [COLOR="darkred"]ВОТ ТАКИМ ЦВЕТОМ[/COLOR] точно не путь к файлу или предположим даже не бинарник то [COLOR="Red"]ЧТО?????[/COLOR]
Думаем, господа.
Если честно, то уже мальца достал ОДИНАКОВЫЕ темы создавать. Если ты хочешь создовать проблему там, где её НЕТУ, то я уже говорил и ещё раз повторюсь, ставь сниф, отлавливай заголовки и смотри что там (намёк, там ответ на твой вопрос). Тема закрыта.