Как загрузить файл с помощью одной формы HTML на более чем один сервер - PullRequest
1 голос
/ 29 сентября 2010

Отправка файла / ключа в Amazon S3 через HTML-форму и HTTP Post довольно проста и работает.

Но я хочу отправить файл нескольким S3-совместимым сайтам через HTTP POST и одну HTML-форму.

Как я могу это сделать?

Насколько я знаю, HTTP POST может быть направлен только на одно целевое местоположение.

Я хочу, чтобы файл был отправлен на первый S3-совместимый сайт (сервер), а затем на второй, а затем на третий и т. Д. Без необходимости взаимодействия пользователя.

Возможно ли это?

Большое спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

Вы можете использовать Flash, чтобы сделать это для вас (намного проще).

Или я думаю, что вы можете использовать невидимые кадры и JavaScript.Направьте загрузку на скрытые кадры и измените действие.В приведенном ниже примере один и тот же файл будет загружен один сервер за другим.

Вот код:

<!DOCTYPE html>
<html>
<head>
<title>Sample</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
    $(function(){
        $('#button1').click(function(){

            $('#frame1').load(function(){
               $('#form1')
                 .attr('action', 'http://server2/')
                 .attr('target', 'frame2')
                 .submit();
            });

            $('#form1')
               .attr('action', 'http://server1/')
               .attr('target', 'frame1')
               .submit();

            return true;
        });
    });
</script>
<style type="text/css"></style>
</head>
<body>
    <form id="form1" method="POST" enctype="multipart/form-data" action="http://cgi-lib.berkeley.edu/ex/fup.cgi"> 
      File to upload: <input type="file" name="upfile" /><br> 
      Notes about the file: <input type="text" name="note" /><br>
    </form>

    <button id="button1">Multiple upload</button>
    <br />

    <iframe id="frame1" name="frame1"></iframe>
    <iframe id="frame2" name="frame2"></iframe>
</body>
</html>
0 голосов
/ 29 сентября 2010

Это невозможно с обычным HTML и браузером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...