Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获的语法错误:意外标记<;_Javascript_Ajax_Json - Fatal编程技术网

Javascript 未捕获的语法错误:意外标记<;

Javascript 未捕获的语法错误:意外标记<;,javascript,ajax,json,Javascript,Ajax,Json,我一直在youtube上观看AJAX上传的视频教程,我知道很多javascript、jquery等,但这让我很困惑 下面是我的代码,当我尝试上传多个文件或在某些情况下是1个文件时,有人能告诉我为什么会发生这种情况吗 我已经在下面加入了我的代码,它并不完美,正如我所说,我正在跟随一个视频教程 <?php if (!empty($_FILES['file'])) { foreach($_FILES['file']['name'] as $key=>$name) { if ($_

我一直在youtube上观看AJAX上传的视频教程,我知道很多javascript、jquery等,但这让我很困惑

下面是我的代码,当我尝试上传多个文件或在某些情况下是1个文件时,有人能告诉我为什么会发生这种情况吗

我已经在下面加入了我的代码,它并不完美,正如我所说,我正在跟随一个视频教程

<?php

if (!empty($_FILES['file']))
{
foreach($_FILES['file']['name'] as $key=>$name)
{
    if ($_FILES['file']['error'][$key] == 0 && move_uploaded_file($_FILES['file']['tmp_name']       [$key], "uploads/{$name}"))
    {
        $uploaded[] = $name;
    }
}

if (!empty($_POST['ajax']))
{
    die(json_encode($uploaded));
}
}

?>

<html>
<head>
<title></title>
<script type="text/javascript" src="upload.js"></script>
</head>
<style type="text/css">
#upload_progress {display: none;}
</style>
<body>

<div id="uploaded">
        <?php
            if(!empty($uploaded))
            {
                foreach ($uploaded as $name) {
                    echo '<div><a href="uploads/'.$name.'">'.$name.'</a></div>';
                }
            }
        ?>
</div>

<div id="upload_progress"></div>

<form method="post" action="" enctype="multipart/form-data">
    <input type="file" id="file" name="file[]" multiple="multiple">
    <input type="submit" id="submit" value="upload">
</form>

</body>
</html>

#上传进度{显示:无;}
我的JS文件是

var handleUpload = function(event) {
event.preventDefault();
event.stopPropagation();

var fileInput = document.getElementById('file');

var data = new FormData();

data.append('ajax', true);

for (var i = 0; i < fileInput.files.length; ++i)
{
    data.append('file[]', fileInput.files[i]);
}

var request = new XMLHttpRequest();

request.upload.addEventListener('progress', function(event) {
    if (event.lengthComputable)
    {
        var percent = event.loaded / event.total;
        var progress = document.getElementById('upload_progress');
        while (progress.hasChildNodes())
        {
            progress.removeChild(progress.firstChild);
        }
        progress.appendChild(document.createTextNode(Math.round(percent * 100) + '%'));
    }



});

request.upload.addEventListener('load', function(event) {
    document.getElementById('upload_progress').style.display = 'none';
});

request.upload.addEventListener('error', function(event) {
    alert("Upload Failed");
});

request.addEventListener('readystatechange', function(event) {
    if (this.readyState == 4) {
        if (this.status == 200)
        {
            var links = document.getElementById('uploaded');
            console.log(this.response);
            var uploaded = JSON.parse(this.response);
            var div, a;

            for (var i = 0; i < uploaded.length; i++)
            {
                div = document.createElement('div');
                a = document.createElement('a');
                a.setAttribute('href', 'uploads/' + uploaded[i]);
                a.appendChild(document.createTextNode(uploaded[i]));
                div.appendChild(a);
                links.appendChild(div); 
            }
        } else {
            console.log("error" + this.response);
        }
    }
});

request.open('POST', 'index.php');
request.setRequestHeader('Cache-Control', 'no-cache');

document.getElementById('upload_progress').style.display = 'block';

request.send(data);


}

window.addEventListener('load', function(event) {
var submit = document.getElementById('submit');
submit.addEventListener('click', handleUpload);

});
var handleUpload=函数(事件){
event.preventDefault();
event.stopPropagation();
var fileInput=document.getElementById('file');
var data=new FormData();
data.append('ajax',true);
对于(变量i=0;i
最初视频让我对上传的变量使用eval,我将其改为JSON.parse,我不想快速修复,而是想回答为什么这不起作用

谢谢
Ben

我发现了问题所在,在php.ini文件中,我的服务器上有一个文件上传的大小限制,我增加了这个限制,现在可以正常工作了


其他有同样问题的人请检查您的上传大小

查看浏览器的开发工具。您能在Net选项卡中看到您的Ajax请求吗?格式正确吗?它得到回应了吗?响应是否正确?包含错误的行的整个错误消息是什么?是的,如果我使用单个文件,它的格式会很好,如果我使用多个文件,它会返回索引源。php,而不是作业格式的数组,我只是不明白为什么它会这样做。@Ahmad-主题是chrome控制台捕捉到的错误消息。在右侧的控制台中,它应该告诉您包含错误的行