Pular para o conteúdo principal

Upload de arquivos com PHP e XMLHttpRequest - método change

Upload de arquivos com PHP e XMLHttpRequest - método change - Publicado por: Wellington Pragidi Desenvolvedor Web

index:




    
    
    Upload XMLHttpRequest



    


 

script.js:

let inputfile = document.querySelector("#upload");
let callback  = document.querySelector("#callback");
let inputurl  = document.querySelector("#file-url");
let inputdir  = document.querySelector("#file-dir");
let inputype  = document.querySelector("#file-type");
inputfile.addEventListener('change', function() {
    var file = this.files[0];
    var upload = new FormData();
    upload.append("upload", file);
    var request = new XMLHttpRequest();
    request.open("POST", "http://localhost/upload-XMLHttpRequest/change/upload.php");
    request.addEventListener('load', function() {
        if(this.status == 200) {
            var result = JSON.parse(this.response);
            inputype.innerHTML = result.type;
            inputurl.value = result.url;
            inputdir.value = result.path;
            callback.innerHTML = '';
        }
    });
    request.send(upload);
});

 

upload.php

$filetmp = $_FILES["upload"]["tmp_name"];
$filename = $_FILES["upload"]["name"];
$filetype = $_FILES["upload"]["type"];

$path = __DIR__;
$path = str_replace("\\", "/", $path);
$path = $path.'/uploads/';
if( !is_dir($path) ) 
    mkdir( $path, 0777, true );

move_uploaded_file( $filetmp , $path.$filename );

$baseurl = str_replace( $_SERVER["DOCUMENT_ROOT"], $_SERVER["SERVER_NAME"], $path );
$protocol = isset( $_SERVER["HTTPS"] ) ? 'https://' : 'http://';
$fileurl = $protocol.$baseurl.$filename;

echo json_encode([
    'path'  => $path.$filename,
    'url'     => $fileurl,
    'type'  => $filetype 
]);
Categorias: JavaScript, PHP