我试图通过ajax与PHP从HTML输入接收输入文件…下面是HTML:
<form id="file-form-real" method="POST" enctype="multipart/form-data"><input type="file" class="inputfile" id="carga-excelreal" name="carga-excelreal" accept="application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"><label for="carga-excelreal"><img src="img/MSExcel_2013_logo.svg"><span>Carga Archivo Costo Real</span></label><button type="submit" class="u-button" id="ubutton-real" onclick="uploadManager.sendReal();">Actualizar BD</button></form>
Javascript文件uploadManager.js:
var uploadManager = {
sendReal: function(){
var form = document.getElementById("carga-excelreal");
var nameOr = form.value;
var splited = nameOr.split("''");
var largo = splited.length;
var name = splited[largo-1];
var file = form.files;
var formData = new FormData();
formData.append('file', file);
formData.append('name', name);
var ajaxRequest= $.ajax({
url:"controllers/admin/UploadCostoReal.php",
data: formData,
type:"POST",
contentType:false,
processData:false,
cache:false,
success:function(response){
console.log(response);
}
});
}
}
下面是PHP:
<?php
$name = $_POST['name'];
$file = $_FILES['file'];
if(move_uploaded_file($file,"../../docs/costo_real/".$name)){
$msg = "Uploaded Ok";
echo json_encode($msg, JSON_UNESCAPED_UNICODE);
}else{
$msg = "There was an error";
echo json_encode($msg, JSON_UNESCAPED_UNICODE);
}
?>
使用print_r($_POST)和print_r($_FILES)打印时,输出如下:
Array
(
)
Array
(
[file] => [object FileList]
[name] => 1557 - Planilla Gestion de Compras 16.ago.2016.xls
)
我有以下问题:
-如何读取[object FileList],获取文件并将其保存到指定文件夹
-(我已经看到[file]是空的,....为什么? ?
-一般程序是可以的,或者我必须在我的表单标签中使用一个动作属性??
如果有人知道如何放置加载gif(最后一件事并不重要,因为我已经问过的主要事情)
谢谢你的回答。
在你的js var file = form.files;
可能需要:
var file = form.files[0];
或var file = form.files.shift();
我相信form.files
将是一个数组