загрузить |изменение настроек загрузки на лету - PullRequest
5 голосов
/ 22 октября 2010

Я застрял.Я использую uploadify для загрузки нескольких файлов на мой сервер s3.Я хотел бы поместить каждый файл в папку с уникальным идентификатором .Я надеялся использовать этот синтаксис для достижения этой цели (обратите внимание, что uuid - это плагин jquery для генерации uuids):

'onComplete'  : function(event,queueId,fileObj,response) {
   $('#fileInput').uploadifySettings('folder',$.uuid())
}

Моя проблема в том, что когда вызывается этот обратный вызов - у меня больше нетдоступ к $('#fileInput').uploadifySettings(x,y) я получаю, что это неопределенный метод?!

Другие параметры загрузки отмечать:

'auto':  'true'
'multi': 'true'

, и я загружаю непосредственно в Amazon s3

Кто-нибудь сталкивался с этим?Идеи о том, как решить?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 31 октября 2010

Я решил эту же проблему следующим образом, изменив scriptData «onSelect», чтобы при выборе нового файла:

onSelect : function(){
            $('#images_upload_file').uploadifySettings("scriptData", {'yourvar': yourvalue });
        },

кажется, что делает трюк

1 голос
/ 28 октября 2010

Надеюсь, я не совсем неправильно понял ваш вопрос.

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

На этом последнем шаге копирования вы можете легко ввести uuid (в данном случае, вероятно, также на стороне сервера).

Это был бы правильный подход, или я пропустил требование, которое у вас есть?

0 голосов
/ 10 марта 2011

У меня была такая же проблема.После нескольких часов боли я наконец решил ее, вручную манипулируя строкой flashvars, которая передается объекту флэш-загрузки.

Учитывая этот элемент HTML:

<div id="file_upload" name="file_upload"></div>

Я приступаю к загрузке на этомэлемент с этим:

$('#file_upload').uploadify({
    // Empty folder path
    'folder'    : ''
});

Это добавляет элемент <object> с несколькими <param> дочерними элементами в ваш HTML-файл.Один из этих <param> элементов называется «flashvars», а его строковое значение содержит путь к папке загрузки.Итак, чтобы изменить значение папки, я ищу в этой строке аргумент «folder =» следующим образом:

// Find correct <param> element and retrieve it's value
var found = $("#file_uploadUploader").find("param[name=flashvars]").val();

// Search within that value for the specific folder argument using a regex
// and replace find with new_path
found = found.replace(/folder\=.*\/&/, "folder="+new_path+"&");

Надеюсь, это поможет.

...