Как отправить файл по FTP в JavaScript?
Я хочу, чтобы когда пользователь загружает файл, этот файл отправлялся на сервер по FTP без нажатия кнопки или отправки формы. Я пытаюсь это сделать, но ничего не получается.
Сначала я создал функцию с временными интервалами, которая проверяет, пуст ли входной файл или нет. Если он не пуст, она должна отправить файл на сервер.
var file = "/uploads/" + {{ api_id }}
это должен быть адрес файла на сервере.
Как я могу это сделать или где моя ошибка?
<input type="file" class="form-control-file" id="exampleFormControlFile1" name="bankStat1">
<script>
setInterval(displayHello, 1000);
function displayHello() {
var is_File = false
if (document.getElementById("exampleFormControlFile1").files.length >= 1){
is_File = true
var file = "/uploads/" + {{ api_id }}
var ftp = new FtpConnection("ftp://myftp/") ;
ftp.login("myuser", "mypass");
ftp.cd("uploads")
ftp.put(file,document.getElementById("exampleFormControlFile1").files[0]) ;
ftp.close() ;
file.close() ;
}
console.log(is_File)
}
</script>
Я не думаю, что существует хорошее решение для загрузки файлов непосредственно из клиентского javascript на сервер через FTP. Проблема в том, что ваши учетные данные FTP должны быть где-то, чтобы javascript мог получить к ним доступ, но впоследствии это означает, что любой, у кого есть доступ к этому javascript, может просто использовать ваш FTP-сервер по своему усмотрению (ситуация, которая созрела для злоупотреблений)
Если вы просто пытаетесь загрузить файлы на сервер, HTML/HTTP обеспечивает функциональность загрузки файлов на стороне клиента, а Django имеет возможность делать что-то с этими файлами. Если у вас есть сервер, доступный только через FTP, я рекомендую загрузить файл на ваш django-сервер и затем использовать FTP-библиотеку python для пересылки его оттуда. (Я также рекомендую тщательно проверять файлы, загруженные пользователями, так как проблемы с безопасностью возникают, если позволить файлам, предоставленным клиентами, жить на вашем сервере!)