Por ejemplo mínimo, tengo
Anfitrión: 111.222.111.123
Nombre de usuario: nombre_usuario
Contraseña: contraseña_palabra
El archivo para cargar se selecciona con el elemento de input HTML
Puedo cargar el archivo manualmente en el directorio de destino del servidor con un cliente como FileZilla.
El directorio de destino es donde se debe cargar el archivo. Su ubicación en Internet es https://nameofsite/targetdir/ , por lo que cualquiera debería poder acceder al archivo en Internet como https://nameofsite/targetdir/1.html .
Pero, ¿es posible subir el archivo al servidor con javascript?
Intenté este ejemplo teniendo en cuenta la respuesta de @ mcrdy455, pero de todos modos no está claro qué es FtpConnection :
<input id="fileForUpload" type=file onchange="upload()"> <div id="fileContents"></div> <script> function upload() { var file = document.getElementById("fileForUpload").files[0]; if (file) { var reader = new FileReader(); reader.readAsText(file, "UTF-8"); reader.onload = function (evt) { document.getElementById("fileContents").innerHTML = evt.target.result; var ftp = new FtpConnection("ftp://111.222.111.123/"); ftp.login("user_name", "pass_word"); ftp.put(file, "1.html"); ftp.close(); file.close(); } } } </script>Error de referencia no capturado: FtpConnection no está definido
Después de buscar en Internet, todavía no estoy seguro de a qué proyecto pertenece FtpConnection . Otros ejemplos usan URL en lugar de direcciones IP (111.222.111.123).
Por ejemplo Ftp.createCORSRequest('POST', "http://www.ftpjs.xyz/upload.aspx") en este . Me gustaría no complicarme (con CORS) y usar la dirección 111.222.111.123.
Si FileZilla puede hacer el trabajo, ¿por qué javascript no podría hacerlo? ¿Cómo?
El código JavaScript NO puede acceder a los archivos de su sistema de archivos, usar un archivo de tipo de entrada y leer el archivo a través de FileReader: Puede encontrar más información sobre cómo hacer esto aquí . Una vez que tenga el archivo/objeto blob correcto, el código debería funcionar