我正在使用 Valum 的 Ajax-Uploader 脚本将文件上传到我的服务器。因为上传的文件很有可能具有相同的名称,所以我在文件名中添加了一个随机数。问题是 ajax 上传器将原始文件名返回到input[type=text]
而不是添加了随机数的新文件名中。我试过echo $file;
代替echo "success";
,但所发生的只是文件已上传,并且脚本返回并弹出错误。
jQuery(function() {
var url = "http://example.com/uploads/samples/";
var button = jQuery('#up');
new AjaxUpload(button, {
action: 'upload.php',
name: 'upload',
autoSubmit: true,
onSubmit: function(file, ext) {
// do stuff while file is uploading
},
onComplete: function(file, response) {
if (response === "success") {
$('input[type=text]').val(url + file);
} else {
jAlert('Something went wrong!', 'Error!');
}
}
});
});
上传.php
<?php
$uploaddir = '/path/to/uploaddir/';
$file = basename($_FILES['file']['name']);
if($_FILES['file']['name']) {
$file = preg_replace('/\s+/', '_', $file);
$rand = rand(0000,9999);
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploaddir . $rand . $file)) {
echo "success";
} else {
echo "error";
}
}
?>