Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Отправка файла на сервер после его выбора (https://javascript.ru/forum/dom-window/80347-otpravka-fajjla-na-server-posle-ego-vybora.html)

SerAl 25.05.2020 20:45

Отправка файла на сервер после его выбора
 
Здравствуйте.
Суть следующая, после того, как пользователь выберет файл в <input type="file"... необходимо произвести его отправку на сервер (локальный сайт)
Код такой:
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Loads</title>
<script>

function loads(){
console.log("Файл выбран");
//Отправка на сервер
}		
		
</script>
  
</head>
<body>

<form name="upload" action="download_img.php" method="POST" ENCTYPE="multipart/form-data"> 
<input type="file" name="userfile" accept=".jpg" onchange="loads()">
<input type="submit" name="upload" value="Загрузить"> 
</form>

</body>
</html>


download_img.php
<?php
$uploaddir = 'temps/';
$apend=date('YmdHis').rand(100,1000).'.jpg'; 
$uploadfile = "$uploaddir$apend"; 
if($_FILES['userfile']['type'] == 'image/jpeg' && $_FILES['userfile']['size'] != 0)
{ 
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile); 
} 
?>


Соответственно кнопка загрузки мне не нужна.

Rise 25.05.2020 20:50

document.forms.upload.submit();

SerAl 25.05.2020 20:53

Спасибо.
Забыл уточнить, нужно оставаться на index,не переходить на download_img.php

laimas 25.05.2020 21:04

Цитата:

Сообщение от SerAl
нужно оставаться на index,не переходить

http://developer.mozilla.org/ru/docs...PI/Using_Fetch или https://developer.mozilla.org/ru/doc...XMLHttpRequest. Здесь готового кода по этому много в разделе AJAX и COMET, поищите.

Rise 25.05.2020 22:35

SerAl,
var xhr = new XMLHttpRequest();
xhr.open('POST', 'upload.php');
xhr.onload = function() {
    if (this.status == 200) {
        alert('Uploaded!');
    } else {
        alert('Server error!');
    }
};
xhr.onerror = function() {
   alert('Network error!');
};
xhr.send(new FormData(document.forms.upload));

SerAl 26.05.2020 13:33

Большое спасибо


Часовой пояс GMT +3, время: 10:05.