Имя: Пароль:
IT
Веб-мастеринг
uploadify - сохранить в выбранную пользователем папку
0 frenni
 
01.09.11
14:05
На странице есть форма, в которой пользователь может выбрать папку для сохранения файлов - выбор через select.
<form name="frm_file" action="" method="post" enctype="multipart/form-data">
<table>
 <tr>
   <td>Галерея: </td>
   <td>
   <select name="sp_gallery" size="1">
   <?php
       for($i=1; $i<=5; $i++) {
           echo ('
           <option value="'.$gallery_folder[$i].'">'.$gallery_folder[$i].'</option>');
   }
   ?>
   </select></td>
 </tr>
 <tr>
     <td colspan="2"  style=" border: none; text-align:center;">
   <input id="file_upload" name="file_upload" type="file" />
   </td>
 </tr>
</table>
</form>

Также добавила код для javascr&#305;pt -
<script type="text/javascript">
   $(document).ready(function() {
     $('#file_upload').uploadify({
       'uploader'  : '../js/uploadify/uploadify.swf',
       'script'    : '../js/uploadify/uploadify.php',
       'cancelImg' : '../js/uploadify/cancel.png',
       'folder'    : '../img/'+ this.options[this.selectedIndex].value,
       'auto'      : true
     });
   });
   </script>

В таком случае
'folder'    : '../img/'+ this.options[this.selectedIndex].value

не работает модуль загрузки.

Для варианта:
'folder'    : '../img/'+ document.forms[1].sp_gallery.options[document.forms[1].sp_gallery.selectedIndex].value,
независимо от выбора в списке, всегда сохраняет в первую по списку папку.
1 kokamoonga
 
01.09.11
20:26
>>>   В таком случае
'folder'    : '../img/'+ this.options[this.selectedIndex].value

не работает модуль загрузки.

насколько я понимаю в этом варианте this относится к  $('#file_upload') потому и не работает.

<select id="sp_gallery" name="sp_gallery" size="1">
И получай свой селект по id : $(#sp_gallery)
2 Asmody
 
01.09.11
20:45
(0) потому что твой код срабатывает в момент загрузки документа (точнее, по окончании формирования DOM, но не суть). во-вторых, this в этом случае - это document
поставь в этом коде путь, который у тебя выбран по-умолчанию, а на select (которому лучше дать какой-нибудь id), повесь обработчик .change(), в котором вызывай .uploadifySettings() (http://www.uploadify.com/documentation/methods/uploadifysettings/ ), изменяя folder
3 Asmody
 
01.09.11
20:50
кстати, что будет, если пользователь выберет один каталог из списка, наберет файлов, а потом выберет другой каталог, опять наберет файлов и только потом нажмет Upload?
4 frenni
 
02.09.11
00:07
(1) К сожалению не помогло, в силу того, что объяснил Asmody про загрузку документа.
5 frenni
 
02.09.11
00:07
(2)Огромное спасибо, все замечательно получилось. УРА!
6 frenni
 
02.09.11
00:08
(3) Никакой проблемы не будет, так как файлы не набираются, а сразу грузятся после выбора файла, так работает этот модуль uploadify
7 Asmody
 
02.09.11
00:10
(6) да, увидел auto:true
надеюсь, на сервере параметр folder проверяется на валидность?  а то поназагружают :)