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!');
}
}
});
});
upload.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";
}
}
?>