为了开始,我已经在这里查看了一些类似的问题,但仍然无法解决我的问题。
HTML:
<input type="file" name="filename" multiple="multiple" data-classIcon="icon-plus" data-buttonText="Upload Your File">
PHP:
$name = $_FILES['filename'];
$temp_name = $_FILES['filename']['tmp_name'];
if(isset($name)){
if(!empty($name)){
$location = 'uploads/';
if(move_uploaded_file($temp_name, $location.$name)){
echo 'uploaded';
}
}
} else {
echo 'error: not uploaded';
}
JS:
$('#cc-submit').on('click', function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "balanced/example.php",
data: $('#creditcardpost').serialize(),
success: function(data)
{
alert(data);
}
});
});
错误:
未定义的索引:xx行上的/public_html/script.php中的文件名(收集$ _FILES变量的两行。
&#34;错误:未上传&#34;
答案 0 :(得分:0)
您必须使用:
$name = $_FILES['filename']['name'];
答案 1 :(得分:0)
我在$ _FILES上使用了print_r,发现我的文件是以“file-0”形式出现的。我没有进行多文件上传,所以这对我有用。这是解决方案。 PHP:
$name = $_FILES['file-0']['name'];
$temp_name = $_FILES['file-0']['tmp_name'];
$location = '../uploads/';
if(move_uploaded_file($temp_name, $location.$name)){
}
print_r($name);
发送它的JS需要有点工作:
var data = new FormData();
jQuery.each($('#file')[0].files, function(i, file) {
data.append('file-'+i, file);
});
$.ajax({
url: 'balanced/upload.php',
data: data,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function(data){
alert(data);
$('#creditcardpost').append('<input type="hidden" value="' + data + '" name="filename" />');
}
});
我已经开始工作了。谢谢你帮帮我们。