403禁止错误的PHP

时间:2018-08-29 05:01:17

标签: javascript php

我有一个脚本给我错误 403禁止的错误。

当我在服务器上运行此脚本时,控制台中出现状态码403禁止错误

表示脚本在此行停止

xmlhttp.open("POST", 'process_thumb.php', true);

这是我的脚本

<script type="text/javascript">
    var index = 0;
    var video = document.getElementById('video');

    var starttime = 0.00;  // start at 7 seconds
    var endtime = 0.00;    // stop at 17 seconds
    video.addEventListener("timeupdate", function () {
        if (this.currentTime >= endtime) {
            this.pause();
            getThumb();
        }
    }, false);

    video.play();
    video.currentTime = starttime;
    function getThumb() {
        var filename = video.src;
        var w = video.videoWidth;//video.videoWidth * scaleFactor;
        var h = video.videoHeight;//video.videoHeight * scaleFactor;
        var canvas = document.createElement('canvas');

        canvas.width = w;
        canvas.height = h;
        var ctx = canvas.getContext('2d');
        ctx.drawImage(video, 0, 0, w, h);

//document.body.appendChild(canvas);
        var data = canvas.toDataURL("image/jpg");

//send to php script
        var xmlhttp = new XMLHttpRequest;

        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                console.log('saved');

            }
        }
    console.log('saving');
    xmlhttp.open("POST", 'process_thumb.php', true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send('name=' + encodeURIComponent(filename) + '&data=' + data);
    xmlhttp.onreadystatechange = function () {//Call a function when the state changes.
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
     //alert(xmlhttp.responseText==1);
            if (xmlhttp.responseText == 1)
            {
                // window.location = 'video.php';
            } else
            {
                alert('Please Try Again');
                window.location = 'add-video.php';
            }
        }

    }
}

function failed(e) {
// video playback failed - show a message saying why
        switch (e.target.error.code) {
            case e.target.error.MEDIA_ERR_ABORTED:
                console.log('You aborted the video playback.');
                break;
            case e.target.error.MEDIA_ERR_NETWORK:
                console.log('A network error caused the video download to fail part-way.');
                break;
            case e.target.error.MEDIA_ERR_DECODE:
                console.log('The video playback was aborted due to a corruption problem or because the video used features your browser did not support.');
                break;
            case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
                console.log('The video could not be loaded, either because the server or network failed or because the format is not supported.');
                break;
            default:
                console.log('An unknown error occurred.');
                break;
        }
    }
</script>

process_thumb.php

$thumbs_dir="images/thumbnail/";
if (isset($_POST["name"]) && $_POST["name"]) {
    // Grab the MIME type and the data with a regex for convenience
    if (!preg_match('/data:([^;]*);base64,(.*)/', $_POST['data'], $matches)) {
        die("error");
    }
    $file = basename($_POST['name'], '.mp4');
    // Decode the data
    $data = $matches[2];
    $data = str_replace(' ', '+', $data);
    $data = base64_decode($data);

    file_put_contents($thumbs_dir . $file . ".jpg", $data);

这里有解决方案吗?

谢谢

0 个答案:

没有答案