2013-09-12 4 views
0

Каждые так часто (кажется, раз в год) у меня есть шанс поиграть с JS.
Хотя я не владею, мне достаточно удобно, чтобы выполнить работу, если у меня есть хорошие ссылки.Javascript: загрузить файл и загрузить файл маршрута через POST

На данный момент, я чувствую, что я всего лишь не, придумывая правильные условия поиска, чтобы найти что-нибудь полезное.

ЦЕЛЬ:
Я ищу примеры, советы, рекомендации и/или ссылки на какой-либо документации/статьи/инструкции, что моя помощь.

предыстория:
Мы имеем поставщика на чей сайт мы ищем номера деталей.
Страница результатов имеет основные спецификации и stat, и есть ссылка для загрузки для листа цены.
Мы разработали инструмент для анализа листа и автоматического ввода цены в нашу систему. Текущий рабочий процесс - загрузить файл и сохранить его локально, а затем загрузить файл в нашу форму.

ЗАДАЧА:
То, что я собираюсь сделать, это букмарклет, чтобы вырезать несколько шагов.
Я хотел бы, чтобы JS инициировал DL, а затем POST-файл прямо на текущую форму обработки action url (прямо из памяти/временного местоположения).

РЕЗЮМЕ:
Конечно, фрагменты кода и примеры всегда удивительным !!
Кроме того, любой-и-каждый бит обмена будут оценены

+0

Вы enounter _same origin policy_ или являются места, которые вы загружаете и загружаете из одного источника/[CORS] (https://developer.mozilla.org/en/docs/HTTP/Access_control_CORS)? –

+0

Увы, мы не будем передавать имя_источника policy_ :( – mOrloff

ответ

0

Предполагая, что вы передаете политику же происхождения и что ваш браузер поддерживает XMLHttpRequest, Blob, FormData

function getThenUpload(fromURL, toURL) { 
    var xhrFrom = new XMLHttpRequest(); 
    xhrFrom.onload = function() { 
     var xhrTo = new XMLHttpRequest(), 
      formData = new FormData(); // make file have <form> style 
     formData.append('file', this.response); // set "name, value" of "<input>" 
     xhrTo.open('POST', toURL); 
     xhrTo.send(formData);    // upload file 
    } 
    xhrFrom.open('GET', fromURL); 
    xhrFrom.responseType = 'blob';  // expecting file 
    xhrFrom.send();      // download file 
} 
getThenUpload('/file.txt', 'upload.php'); // start 
+0

Спасибо за фантастическую информацию! Хотя я думаю, что такая же политика происхождения будет зависанием, эта информация и код весьма полезны. – mOrloff

+0

@mOrloff Если вы только можете включить CORS на одной стороне попробуйте этот код с обеих сторон, и, возможно, один будет работать –

+0

Спасибо. У меня есть чтение, чтобы сделать;) – mOrloff

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