フラッシュを使用してファイルを Amazon S3 にアップロードする plupload の実装に取り組んでいます。1 つの小さな問題を除いて、S3 へのファイルのアップロードは完全に機能しています。問題は、設定「unique_names」が機能していないことです。私は常に元のファイル名でS3のファイルになります。いくつかのデバッグの後、一意のファイル名が作成され、アップロードのために Flash SWF に渡されることがわかりましたが、それは決して使用されません。どんな助けでも大歓迎です。
1692 次
3 に答える
4
これが役立つかもしれません: 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」を置き換えます。名前を変更するためのカスタム関数を使用します。
于 2011-09-11T14:25:41.360 に答える
0
ファイルをアップロードする前に、ファイルが一意かどうかを確認できます。これが私のコードです。
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);
}
}
于 2014-06-03T19:28:11.677 に答える
0
https://github.com/moxiecode/plupload/issues/254で次の解決策を見つけました。これが私がコードを使用した方法です。最初に拡張機能を削除し、次に一意の ID を作成し、最後に拡張機能を追加します。また、php 変数を使用してフォルダー名を追加しました。これは必須ではありませんが、バケットをより整理できると思います。
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;
}
},
于 2013-01-09T07:18:20.107 に答える