plupload/flash/Amazon S3/unique_names

Я работаю над реализацией plupload с использованием flash для загрузки файлов в Amazon S3. У меня загрузка файлов на S3 работает отлично, за исключением одной небольшой проблемы. Проблема в том, что настройка "unique_names" не работает. Я всегда получаю файл в S3 с исходным именем файла. После некоторой отладки я вижу, что уникальное имя файла создается и передается во флэш-SWF для загрузки, но оно никогда не используется. Любая помощь будет принята с благодарностью.


person Robert    schedule 23.02.2011    source источник
comment
не нашел даже слова «уникальный» в источнике plupload, кроме «com\plupload\File.as:82: символы 15-21: * @param id Уникальный идентификатор файла».   -  person www0z0k    schedule 23.02.2011


Ответы (3)


Это может помочь: http://www.plupload.com/punbb/viewtopic.php?pid=4321#p4321

Вы должны настроить функцию переименования файлов, написав собственный код для события UploadFile.

Вот что я сделал:

        preinit : {

         UploadFile: function(up, file) {
             up.settings.multipart_params.key = 'adjsdlasjdasdas.jpg';
         }
        },

Замените «adjsdlasjdasdas.jpg»; с вашей пользовательской функцией для переименования.

person TimLeung    schedule 11.09.2011
comment
Да, это то, что я в итоге сделал. - person Robert; 12.09.2011


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

UploadFile: function(up, file) {
        pluploadlog('[UploadFile]', file);
        // You can override settings before the file is uploaded
        var filename = file.name;
        file.newname = '01'+ filename ;///add your own function here to create something unique. 
         up.settings.multipart_params = {
                   'key': mybucketsubdirectory + filename, 
                  'Filename': filename, 
                  'acl': 'public-read',
                  'Content-Type': 'image/jpeg',
                  'AWSAccessKeyId' : '<?php echo $accessKeyId; ?>',
                  'policy': '<?php echo $policy; ?>',
                  'signature': '<?php echo $signature; ?>'
                };
      },

Затем при загрузке файла посмотрите на файл file.newname, который вы добавили ранее.

FileUploaded: function(up, file, info) {
          if (file.status == 5){
             console.log(file.newname); // If you need to get back the new unique name
            uploadSuccess(file, info); 
          }else{
            showItemError(file);
          }
        }
person Richard Torcato    schedule 03.06.2014