【问题标题】:.send(formData) Error "GET 404 .../upload.php (Not Found)" (*Solved*).send(formData) 错误“GET 404 .../upload.php(未找到)”(*已解决*)
【发布时间】:2021-10-21 12:32:29
【问题描述】:

我在使用 javascript 上传文件的网站上找到了此代码,但它似乎不起作用。有人可以帮我吗?

索引.php:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
        <link href="style.css" rel="stylesheet" type="text/css"/>   
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div id="uploads"></div>
                <div class="dropzone" id="dropzone">
                    Drop files fere to upload
                </div>
            </div>
        </div>
        <script src="js_script.js" type="text/javascript"></script>
    </body>
</html>

还有js:

(function() {
    var dropzone = document.getElementById('dropzone');

    var displayUploads = function(data) {
        var uploads = document.getElementById('uploads'),
                anchor,
                x;
        for (x = 0; x < data.length; x = x + 1) {
            anchor = document.createElement('a');
            anchor.href = data[x].file;
            anchor.innerText = data[x].name;

            uploads.appendChild(anchor);
        }
    };

    var upload = function(files) {

        var formData = new FormData(),
                xhr = new XMLHttpRequest(),
                x;
        for (x = 0; x < files.length; x = x + 1) {
            formData.append('file[]', files[x]);
        }

        xhr.onload = function() {
            var data = JSON.parse(this.responseText);
            displayUploads(data);
        };

        xhr.open('post', 'upload.php');
        xhr.send(formData);

    };

    dropzone.ondrop = function(e) {
        e.preventDefault();
        this.className = 'dropzone';
        upload(e.dataTransfer.files);
    };

    dropzone.ondragover = function() {
        this.className = 'dropzone dragover';
        return false;
    };

    dropzone.ondragleave = function() {
        this.className = 'dropzone';
        return false;
    };
}()); 

和上传.php:

<?php

header("Content-Type: application/json");
$uploaded = array();
if(!empty($_FILES['file']['name'][0])){
    
    foreach($_FILES['file']['name'] as $position => $name){
        
        if(move_uploaded_file($_FILES['file']['tmp_name'][$position], 'uploads/'.$name)){
               $uploaded[] = array(
                   'name' => $name,
                   'file' => 'uploads/'.$name
               );                                                                                                                           
        }       
    }   
}
  echo json_encode($uploaded); 
  
  ?>

现在这个问题:

GET .../upload.php 404(未找到)

及相关代码发布:

xhr.send(formData);

顺便说一句,控制台中显示的“GET”是什么??

【问题讨论】:

  • 找不到你发送请求的URL(porting?action=order)
  • ^^^ 您似乎没有显示导致问题的代码,因为 Teemu 指出的 URL 不在显示的代码中。
  • 非常感谢您的帮助,但我的问题出了点问题,我编辑了我的帖子,很抱歉。是的,Teemu,当我更新我的问题时,我发现找不到 upload.php 文件,但这是为什么呢? upload.php 正好在其他文件旁边。我不敢相信我尝试了 8 种不同的方法来设置文件上传,但每种方法都有常见但无法解决的问题......
  • 请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example

标签: javascript ajax xmlhttprequest


【解决方案1】:

我刚刚用大写的“U”保存了文件“Upload.php”,应该是“upload.php”。

【讨论】:

  • 保存有错字的文件?我相信它适合初学者、中级、高级和执行人员。不要对自己那么苛刻。 :)
  • 我很高兴听到这个消息,但正如你提到的职业球员,我并不是真的不尊重任何人。是的,我想最好不要对自己这么苛刻,谢谢。
猜你喜欢
  • 2015-02-08
  • 2017-08-28
  • 2017-01-17
  • 2021-02-16
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多