我很难将额外信息附加到 formData 对象,因此它可以在 PHP 中用于添加到 SQL 数据库。不幸的是,它依赖于 AJAX,所以要测试你需要在服务器或本地主机上运行它,但我已经包含了一个简单的 PHP 文件,它需要被称为“StackedTest.php”
我一直在关注 MDN 上的示例,但是在花费大量时间寻找答案之后,我却一无所获。
谢谢你的帮助。
<html>
<head>
<script type="text/javascript">
var returned;
var fd;
function ajaxCall(sends){
fd = new FormData();
var images = document.getElementById('images');
fd.append('file', images.files[0]);
/**
**
** This doesn't seem to be working, I am trying to append the value of the select box ** to the FILES array
** so I can use it in php to add to an SQL database.
**
**/
fd.append('catagory', document.getElementById('cat').value);
var ajax=new XMLHttpRequest();
ajax.onreadystatechange=function(){
if (ajax.readyState==4 && ajax.status==200){
document.getElementById("response").innerHTML = ajax.response;
fd = null;
}
}
ajax.open("POST","Stackedtest.php",true);
ajax.send(fd);
}
</script>
</head>
<body>
<div id="content">
<div>
<form method="post" enctype="multipart/form-data" action="?">
<select name="cat" id="cat"><br>
<option value="opt1">option 1</option>
<option value="opt2">option 2</option>
<option value="opt3">option 3</option>
</select><br>
<input type="file" name="images[]" id="images" multiple /><br>
<button type="button" id="btn" onclick="ajaxCall()">Upload Files!</button>
</form>
<p id="response">Response text here</p>
</div>
</div> <!-- END CONTENT -->
</body>
</html>
PHP 脚本
<?php
if(isset($_FILES['file'])){
print_r($_FILES['file']);
print_r($_FILES['catagory']);
}
?>