可以使用ajax函数执行此操作,但我特别想使用jQuery的.load()
函数来尝试此操作。
HTML:
<form class="form" action="" method="POST" enctype="multipart/form-data">
<input type="file" name="csv-file">
<p class="upload-button">Upload</p>
<p class="upload-output"></p>
</form>
JS:
$('.upload-button').click(function() {
var formData = $('.form').serializeArray();
$('.upload-output').load('upload.php', formData);
});
您应该能够看到,当我点击upload-button
时,表单将被序列化并发送到名为upload.php
的PHP文件。这是upload.php
:
if(isset($_FILES['csv-file'])){
echo 'found file';
} else echo 'no file';
每次都会返回no file
,我不知道为什么。
如果我要尝试不同的变量类型,如字符串或整数,这将起作用,但当我尝试通过文件变量时,它不起作用。为什么是这样?如何使用.load()
将文件传到我的php?
答案 0 :(得分:0)
实际上,你无法以这种方式上传带有Ajax的文件,因为.serialize()只能为你提供文件名。
使用FormData:
$('.upload-button').click(function() {
var formData = new FormData($('form')[0]);
$('.upload-output').load('upload.php', formData); });