基本上,我要做的是生成一个字母数字字符串,将其传递给php处理程序,并返回到上传表单。上传完成后,表单将使用字母数字字符串创建一个链接。
除了一个问题,我已经把所有的事情都做好了。只生成一个随机字符串,所以如果您尝试同时上传多个文件,每个文件都有相同的字符串名称。我需要它们每个都有不同的名称,但我似乎不知道如何做到,同时仍然能够传递回表单和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忽略坏掉的设计,现在我只是想让它发挥作用。
使用onUploadStart
处理程序设置用于上载的随机字符串。
$('#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',
'auto': false,
'onUploadStart': function() {
$("#file_upload").uploadify('settings',
'formData',
randomString(7, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')) }
});