Я работаю над реализацией plupload с использованием flash для загрузки файлов в Amazon S3. У меня загрузка файлов на S3 работает отлично, за исключением одной небольшой проблемы. Проблема в том, что настройка "unique_names" не работает. Я всегда получаю файл в S3 с исходным именем файла. После некоторой отладки я вижу, что уникальное имя файла создается и передается во флэш-SWF для загрузки, но оно никогда не используется. Любая помощь будет принята с благодарностью.
plupload/flash/Amazon S3/unique_names
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
Да, это то, что я в итоге сделал.
- person Robert; 12.09.2011
preinit : {
BeforeUpload : function(up,file){
// Get the file extension
var file_name = file.name;
var extension = file_name.split(".").pop();
// Create a random ID
var new_id = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var d = new Date();
var n = d.getTime();
for( var i=0; i < 10; i++ )
new_id += possible.charAt(Math.floor(Math.random() * possible.length));
// Change the name NOTE I use a php variable to create a folder on S3
up.settings.multipart_params.key = "<?php echo $foldername ?>/"+n+new_id+"."+extension;
up.settings.multipart_params.Filename = "<?php echo $foldername ?>/"+n+new_id+"."+extension;
}
},
person
OsvyG
schedule
09.01.2013
вы можете проверить, является ли файл уникальным, прежде чем загружать файл. Вот мой код.
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