我正在尝试上传音频文件。
我正在做的是将音频文件通过 Ajax 传递到 PHP,其中将完成上传和其他插入到我的数据库的操作。
通过 Ajax 传递后,我的 PHP 页面看不到音频文件。
<script type="text/javascript">
$(function () {
$('form').on('submit', function (e) {
e.preventDefault();
document.getElementById("load").style.display = "block";
textarea = $('#editor-one').html();
var formData = new FormData($(this)[0]);
formData.append("content", textarea);
$.ajax({
type: 'post',
url: 'verimg.php?ins=newmu',
data: formData,
cache: false,
contentType: false,
processData: false,
success: function(data){
document.getElementById("load").style.display = "none";
//alert(textarea);
jQuery('#get_result').html(data).show();
}
});
});
});
</script>
这是我的 PHP 代码:
if(!isset($_FILES['file'])){
echo '<div class="alert alert-warning">
<strong>Warning!</strong> Please select an audio
</div>';
}else{
$uploaderror='';
$name = ucfirst($_POST['name']);
$artist = $_POST['artist'];
$content = $_POST['content'];
$genre = $_POST['genre'];
$validator = new FormValidator();
$validator->addValidation("name","req","Please fill in Music Name");
$validator->addValidation("category","req","Please Select Artist");
$validator->addValidation("category","req","Please Select Genre");
}
我总是收到“警告!请选择音频”。
最佳答案
我已对您的表单数据进行了更改。在您的 php 代码中,您尝试检查全局 $_FILES 变量中的"file"键,但在 formData 变量中,音频文件未附加到任何“键”。希望它有效:)
<script type="text/javascript">
$(function () {
$('form').on('submit', function (e) {
e.preventDefault();
document.getElementById("load").style.display = "block";
textarea = $('#editor-one').html();
var formData = new FormData();
formData.append("file", e.target.files[0]);
$.ajax({
type: 'post',
url: 'verimg.php?ins=newmu',
data: formData,
cache: false,
contentType: false,
processData: false,
success: function(data)
{
document.getElementById("load").style.display = "none";
//alert(textarea);
jQuery('#get_result').html(data).show();
}
});
});
});
</script>
关于javascript - 使用 Ajax 和 PHP 上传音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44194826/