Имя: Пароль:
IT
Веб-мастеринг
SwfUpload + Amazon S3 кто делал?
,
0 D_Pavel
 
14.08.12
11:14
Нужна помощь. У кого есть опыт?
Не работает загрузка, не могу найти причину.
4 Jump
 
15.08.12
07:15
(0)Что в конфиге?
5 D_Pavel
 
15.08.12
07:30
(4)

<?php
$exp = '"expiration": "'. gmdate('Y-n-d\TH:i:s.000\Z', time() + 3600).'", ';
$policy1 = '{ '.$exp. '"conditions": [{"bucket": "fotk"}, ["starts-with", "$key", ""], ["starts-with", "$Filename", ""]]}';
$policy = base64_encode(utf8_encode(preg_replace('/\s\s+|\\f|\\n|\\r|\\t|\\v/', '', $policy1)));
$signature = base64_encode(hash_hmac('sha1', $policy, 'OXPpyp9j0pYspbRkIKFsdwz+WZ+0yZL960WF8OAg', true));
?>

<form action="http://s3.amazonaws.com/fotk/" method="POST" enctype="multipart/form-data">
   <input type="hidden" name="AWSAccessKeyId" value="AKIAIUWHNRLTONUT7RXQ">
   <input type="hidden" name="key" value="${filename}">
   <input type="hidden" name="policy" value="<?= $policy; ?>">
   <input type="hidden" name="signature" value="<?= $signature; ?>">
   <input type="file" name="file">
   <input type="submit" name="upload" value="Upload">
</form>
<?= $policy1; ?>



<html>
<head>
<title>Upload</title>
<link href="swfupload/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="swfupload/swfupload.js"></script>
<script type="text/javascript" src="swfupload/swfupload.queue.js"></script>
<script type="text/javascript" src="swfupload/fileprogress.js"></script>
<script type="text/javascript" src="swfupload/handlers.js"></script>
<script type="text/javascript">
       var swfu;

       window.onload = function() {
           var settings = {
               flash_url : "swfupload/swfupload.swf",
               upload_url: "http://fotk.s3.amazonaws.com/",
               post_params: {"AWSAccessKeyId":"AKIAIUWHNRLTONUT7RXQ","key":"${filename}", "policy":"<?= $policy; ?>", "signature":"<?= $signature; ?>"},
               file_size_limit : "100 MB",
               file_types : "*.jpg;*.gif;*.png",
               file_types_description : "Kartinki",
               file_upload_limit : 100,
               file_queue_limit : 0,
               custom_settings : {
                   progressTarget : "Progress",
                   cancelButtonId : "Cancel"
               },
               debug: true,

               // Button settings
               button_image_url: "swfupload/but.png",
               button_width: "85",
               button_height: "21",
               button_placeholder_id: "Button",
               button_text: '',
               button_text_style: ".theFont { font-size: 16; }",
               button_text_left_padding: 12,
               button_text_top_padding: 3,
               
               // The event handler functions are defined in handlers.js
               file_queued_handler : fileQueued,
               file_queue_error_handler : fileQueueError,
               file_dialog_complete_handler : fileDialogComplete,
               upload_start_handler : uploadStart,
               upload_progress_handler : uploadProgress,
               upload_error_handler : uploadError,
               upload_success_handler : uploadSuccess,
               upload_complete_handler : uploadComplete,
               queue_complete_handler : queueComplete    // Queue plugin event
           };

           swfu = new SWFUpload(settings);
        };
   </script>
</head>
<body>
   <form id="form1" action="./" method="post" enctype="multipart/form-data">
       <div id="Progress"></div>
       <div id="divStatus"></div>
       <span id="Button"></span>
       <input id="Cancel" type="button" value="Cancel All" onclick="swfu.cancelQueue();" disabled="disabled" style="margin-left: 2px; font-size: 8pt; height: 21px;" />
       <div id="result" style="{float:left;}"></div><div id="result1"></div>
   </form>
</body>
</html>
6 D_Pavel
 
15.08.12
07:42
7 Jump
 
15.08.12
07:53
(6)crossdomain.xml есть на сервере?
8 D_Pavel
 
15.08.12
08:24
9 Jump
 
15.08.12
08:32
(8)И что ты хочешь?
Попробуй для начала так -
<cross-domain-policy>
<allow-access-from domain="*" to-ports="80"/>
</cross-domain-policy>

Если все ок, то настроишь уже конкретней.
10 D_Pavel
 
15.08.12
08:45
(9) А чем мой файл хуже? В примерах на S3 то же самое как у меня.
Ну попробую..
11 Jump
 
15.08.12
08:51
(10)Ну да, я не вчитался. У тебя тоже в принципе нормально.
Но всетаки собака тут порылась, попробуй почитать тут -http://aws.amazon.com/articles/2011
12 D_Pavel
 
15.08.12
08:51
(9) Блин! Работает твой вариант! Спасибо
13 Jump
 
15.08.12
08:55
Значит все-таки заработало.
Вообще все эти флешевские кроссдомайны довольно мутная вещь.
По идее надо топать на их офсайт и вдумчиво читать как там правила пишутся.
Ну чтобы дырок в безопасности небыло.
14 D_Pavel
 
15.08.12
09:01
Хотелось бы вообще избавиться от флэш, но эксплорер не умеет выбирать несколько файлов сразу. Только ради этого флэш использую
15 D_Pavel
 
16.08.12
06:46
пока не умеет, скоро сможет
16 Jump
 
16.08.12
08:11
(15)В смысле?
17 D_Pavel
 
16.08.12
08:34
(16) в 10 эксплорере есть file API, можно делать множественную закачку файлов с прогресс-баром без флэш. Но он только под Windows 8, а под 7 пока нет, надеюсь сделают и под Windows 7.
18 D_Pavel
 
16.08.12
08:36
+(17) Ну или дождаться выхода Windows 8.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой