Как загрузить видео с помощью ajax и php без использования формы html - PullRequest
0 голосов
/ 23 апреля 2020

Я хотел бы загрузить видео, используя ajax и php. 1. вопрос: Этот скрипт работает, если я изменяю видео на файл в этой строке:

form_data.append("video", document.getElementById('file').files[0]);

, а также на стороне сервера. Но, тем не менее, name in

form_data.append("name" ... 

- это переменная, доступная на стороне сервера. Это действительно так?

вопрос: Однако моя цель - не загружать изображения, а видео. Этот скрипт не выполняет работу. Что я делаю не так? Заранее благодарны.

Это javascript файл

<!DOCTYPE html>
<html>
    <head>
        <title>Upload video using Ajax and PHP</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </head>
    <body>
        <div class="container" style="width:700px;">
            <label>Select video</label>
            <input type="file" name="file" id="file" />
        </div>
    </body>
</html>

<script>
$(document).ready(function(){
    $(document).on('change', '#file', function(){
        var name = document.getElementById("file").files[0].name;
        var form_data = new FormData();
        var extension = name.split('.').pop();
        if(jQuery.inArray(extension, ['jpg','mp4']) == -1){
            alert("Invalid video format");
        }
        else{
            var oFReader = new FileReader();
            oFReader.readAsDataURL(document.getElementById("file").files[0]);

            form_data.append("video", document.getElementById('file').files[0]);
            $.ajax({
                url:"save_video.php",
                method:"POST",
                data: form_data,
                contentType: false,
                cache: false,
                processData: false,
                success:function(data)
                {
                    console.log("success...");
                }
            });
        }
    });
});
</script>

, вот это save_video. php file

<?php

//save_video.php
if($_FILES["video"]["name"] != '')
{   
    $old_name = explode('.', $_FILES["video"]["name"]);
    $extension = end($old_name);
    $video_name = "new_name" . '.' . $extension;
    $location = 'upload/' . $video_name;  
    move_uploaded_file($_FILES["video"]["tmp_name"], $location);
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...