基本的に、私がやろうとしているのは、英数字の文字列を生成することです。これは、php ハンドラーに渡され、アップロード フォームに戻されます。アップロードが完了すると、フォームは英数字の文字列を使用してリンクを作成します。
1 つの問題を除いて、すべてが機能するようになりました。生成されるランダムな文字列は 1 つだけなので、複数のファイルを同時にアップロードしようとすると、すべてのファイルが同じ文字列名になります。それぞれに異なる名前を付ける必要がありますが、フォームとphpに戻すことができる一方で、その方法がわからないようです。
これが私のスクリプトです:
<script>
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
return result;
}
var sessid = '';
var data = document.getElementById('data');
$(document).ready(function () {
$('#myModal').modal({
show: false
});
$('#mm').modal({
show: false
});
$(function () {
$('#file_upload').uploadify({
'fileObjName': 'file',
'fileSizeLimit': '8MB',
'buttonText': 'BROWSE FILE(S)...',
'fileTypeExts': '*.JPEG; *.GIF; *.PNG; *.APNG; *.TIFF; *.BMP; *.PDF; *.XCF',
'cancelImg': 'uploadify-cancel.png',
'swf': 'uploadify.swf',
'uploader': 'uploadify.php',
'formData': randomString(7, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'),
'auto': false
});
});
});
</script>
jquery.uploadify-3.1.min.js
また、ランダムな文字列をフォームに戻すことができるように、にも小さな変更を加えました。
if (c.inArray("onUploadSuccess", g.overrideEvents) < 0) {
c("#" + f.id).find(".data").html(" - " + this.settings.post_params);
}
すべての動作を見たい人は、ここで見ることができます: http://icap.me/test/files.php 壊れたデザインは無視してください。今のところ、動作させようとしています。