我想使用ajax + php ..
上传所有媒体文件如果我上传图片和音乐文件,一切正常。 所以我尝试上传视频,它失败了。怎么了?
这是我的ajax
function uploadFile() {
var file = document.getElementById("inputFile").files[0];
var quest_ID = document.getElementById("questionnaireID").value;
var quest_Number = document.getElementById("questNum").value;
var formdata = new FormData();
formdata.append("inputFile", file);
formdata.append("questionnaireID", quest_ID);
formdata.append("questionNumber", quest_Number);
formdata.append("media", 1);
if (xhr) {
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var outMsg = xhr.responseText;
} else {
var outMsg = "There was a problem with the request. Error: " + xhr.status + " (" + xhr.statusText + ")"; //errror return
}
alert(outMsg);
}
};
xhr.open("POST", "addNew.php", false);
xhr.send(formdata);
}
return false;
}
这是php。
function getExtention($str){
return substr(strrchr($str,'.'),1);
}
if (isset($_POST["media"])){
$tmp_file = $_FILES['inputFile']['tmp_name'];
$target_file = $_POST["questionnaireID"] . "-" . $_POST["questionNumber"] . "." . getExtention(basename($_FILES['inputFile']['name']));
$upload_dir = "Assets/Media";
$path = $upload_dir."/".$target_file;
echo $path;
if(move_uploaded_file($tmp_file, $path)) {
$query = "insert into mediaDetails(available, mediaPath)";
$query .= " values(1, '{$path}')";
$result = execute($query);
if($result){
echo "Media added";
}
}else{
echo "cannot move file";
}
}
当我上传图片和音乐而不是视频时,该代码可以正常工作。
为什么我无法上传视频文件? 当我上传视频文件时,它什么都不返回,(根本没有文字)......
偶数echo $path
未显示....
任何替代方式??
任何回答都表示赞赏,谢谢。