$ _FILES vazio após upload de AJAX

David Andersson

Estou desenvolvendo um script simples para fazer upload de um arquivo através do AJAX, mas após o envio do formulário, a variável $ _FILES está completamente vazia, embora o arquivo exista dentro do php: // input, mas sem uma maneira simples de extrair apenas o arquivo. Alguém sabe o motivo e / ou solução para este problema?

Verifiquei todas as soluções comuns. enctype = direitos "multipart / form-data" para form-tags de pasta temporária fechando aspas duplas e a saída do arquivo de entrada em JS

Nada resolveu meu problema.

VERMELHO NÃO é jquery, e não encontrei uma duplicata em 24h. Portanto, não marque como duplicado, a menos que tenha certeza de que é um.

HTML

<form action="upload.php" method="POST" enctype="multipart/form-data" id="testf">
<input type="file" name="file" accept=".jpg">
<input type="submit" value="Skicka">
</form>

JavaScript

let data = document.querySelector("#testf");
data.onsubmit = function() {
    var http = new XMLHttpRequest();
    http.open("upload.php", data.action);
    http.onreadystatechange = function () {
        console.log(http.response);
    }
    http.setRequestHeader("Content-type", data.enctype);
    http.send(new FormData(data));
    event.preventDefault();
    return false;
}

PHP

<?php
var_dump($_FILES);
?>

Isso deve imprimir o conteúdo do meu arquivo, mas

array(0) {}

é tudo que eu consigo. A carga útil do pedido é:

------WebKitFormBoundaryZVGq8suqFUUSFDtW
Content-Disposition: form-data; name="file"; filename="david.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryZVGq8suqFUUSFDtW--
Edwin Dijas See

Você tem um problema com o método XMLHttpReqest do JavaScript. Leva pelo menos dois parâmetros: Método e url. Os parâmetros completos são: método, url, async, usuário, senha

Altere seu código de:

 http.open("upload.php", data.action);

Para:

 http.open("post", data.action );

Atualizar: Remover também

http.setRequestHeader("content-type", "multipart/form-data")

Os dados do formulário já definem seus cabeçalhos para o tipo de conteúdo.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Upload de arquivo Ajax, $ _FILES vazio

upload de arquivo php ajax, $ _FILE está vazio

PHP fica vazio $ _FILES var no upload de arquivo JavaScript

slim 4 - upload de vários arquivos vazio array $ _FILES

Upload de arquivo AJAX do CodeIgniter, $ _FILE está vazio quando o upload

O upload da imagem AJAX PHP não está funcionando, $ _FILES vazio?

O upload da imagem AJAX PHP não está funcionando, $ _FILES vazio?

$ _POST e $ _FILES vazios após o upload do arquivo AJAX

Campo de upload Yii2 sempre vazio quando a validação de Ajax

JSON.stringify ficando vazio após a segunda solicitação de atualização via ajax no Spring mvc

Django não pode fazer upload de vários arquivos e request.FILES parece vazio

O upload do arquivo jquery ajax não está funcionando var_dump ($ _ FILES) fornece um array vazio

imagem não carregada após chamar a função de upload em ajax

(LWJGL3) OpenGL 2D Texture Array permanece vazio após o upload de dados de imagem com glTexSubImage3D

jQueryFileUpload - S3 - Erro de resultado de upload de arquivo vazio

GWT Image Upload de conteúdo vazio

Upload de arquivo vazio ao enviar

ReactJS: campo de entrada vazio após processar seu valor

componente vazio após renderização de reação

array está vazio após a remoção de duplicatas

SSIS - arquivo XML vazio após tarefa de renomeação

QDataStream vazio após a chamada de QDataStream :: writeRawData

ArrayList está vazio após a criação de novos objetos

$ _POST array está vazio após o envio de

formData retorna objeto vazio no arquivo, upload ajax laravel

Arquivo de tamanho duplo após upload

Exibindo a foto após o upload usando Ajax - Laravel

Valor de sucesso do PHP AJAX vazio

Upload de arquivo Ajax