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
]);