我如何验证文件类型使用ajax在codeigniter


How can i validate file type using ajax in codeigniter

我在Codeigniter工作,我面临一个问题,我必须显示用户错误信息时,他正在使用ajax上传任何其他文件类型的服务器。我不想再次加载视图以显示错误消息。我的代码如下:请帮我解决我的问题。

视图:

function upload_video_Data(a)
{ 
        var fd = new FormData(document.getElementById('posting_comment_'+a));
        fd.append("file_m_id",a);
        var bar = $('.bar');
        var xhr = new XMLHttpRequest();        
        xhr.upload.addEventListener("progress", uploadProgress, false);
     xhr.onreadystatechange=function() {
       if (xhr.readyState==4 && xhr.status==200) {
        document.getElementById("nameTest").value=xhr.responseText;
        }
      }   
        xhr.open("POST", "Dashboard/do_upload_video");
        xhr.send(fd);
        function uploadProgress(evt) {
            if (evt.lengthComputable) {
            var percentComplete = Math.round(evt.loaded * 100 / evt.total);
            document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
            $("#status").animate( { width: percentComplete.toString()+"%"}, 5);
            }
        }
}

控制器:

public function do_upload_video()
    {  
      $lecture_id=$_POST['file_m_id'];
      $output_dir = "./uploads/";
      $fileName = $_FILES["save_movie_".$lecture_id]["name"];
if(!move_uploaded_file($_FILES["save_movie_".$lecture_id]["tmp_name"],$output_dir.$fileName))
{
echo '0';
}
else
{
echo '1';
}
    }

在ajax之前使用此代码验证文件

的扩展名
var ext = $('#my_file_id').val().split('.').pop().toLowerCase();
    if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
        alert('invalid extension!');
    }
现在你的代码看起来像这样
function upload_video_Data(a)
{ 
   var ext = $('#my_file_id').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
    return false;
}

        var fd = new FormData(document.getElementById('posting_comment_'+a));
        fd.append("file_m_id",a);
        var bar = $('.bar');
        var xhr = new XMLHttpRequest();        
        xhr.upload.addEventListener("progress", uploadProgress, false);
     xhr.onreadystatechange=function() {
       if (xhr.readyState==4 && xhr.status==200) {
        document.getElementById("nameTest").value=xhr.responseText;
        }
      }   
        xhr.open("POST", "Dashboard/do_upload_video");
        xhr.send(fd);
        function uploadProgress(evt) {
            if (evt.lengthComputable) {
            var percentComplete = Math.round(evt.loaded * 100 / evt.total);
            document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
            $("#status").animate( { width: percentComplete.toString()+"%"}, 5);
            }
        }
}