|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando

-- Tutorial de iniciación a Autoit --

Volver al índice del tutorial

____________________________

72.- Elegir un archivo del ordenador y subirlo a un servidor web de internet.

- Pulsamos un botón y sale una ventana para elegir archivo. Elegimos uno.

- Pulsamos otro botón y ese archivo sube a un hosting remoto.

- La subida de archivo está basada y adaptada de este envío:

https://www.autoitscript.com/forum/topic/187577-cant-get-http-upload-for-pictures-working/#comment-1347100

- Necesita la librería #include <WinHttp.au3> de dragana-r, la puedes obtener de:

https://github.com/dragana-r/autoit-winhttp/releases

- También la puedes bajar de aquí: WinHttp.au3

- Bajas ese archivo WinHttp.au3 y lo copias en la carpeta "Include" de donde tengas instalado el AutoIt.

_______________________________________________________
1.- Necesitamos un hosting.

- Lee este tutorial y créate una cuenta gratuita en Hostinger.

- Además aprende a subir archivos a Hostinger mediante el cliente de FTP Mozilla.

317.- Hosting gratuito Hostinger.

_____________________________________________________
2.- Archivo PHP que subiremos a nuestro hosting.

sube_archivo_autoit.php
<?
if($_GET['action'] == 'subelo'){
$donde_se_guardara = "subidos/";
// Modificado por Juan A. Villalpando - KIO4.COM
$donde_se_guardara = $donde_se_guardara.basename( $_FILES['sube_archivo']['name']); 

if(move_uploaded_file($_FILES['sube_archivo']['tmp_name'], $donde_se_guardara)) {
    echo "El archivo ".basename( $_FILES['sube_archivo']['name']). 
    " ha subido.";
} else{
    echo "Error en la subida del archivo.";
}
}
?>

- Este PHP será el encargado de tomar la información del archvio y guardarlo en el servidor remoto.

- Suponemos que en el servidor remoto tenemos un subidirectorio en "subidos/"

- Si queremos subirlo al mismo directorio donde está el PHP, ponemos: $donde_se_guardara = "";

- Mediante el cliente FTP Mozilla puedes crear ese directorio y ponerle todos los "Permisos de archivo..."

_____________________________________________________
3.- Aplicación en AutoIt para enviar un archivo y guardarlo en un servidor remoto.

Código para el AutoIt
				   
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WinHttp.au3> ; Incluir esta librería.

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Elegir y subir archivo - Juan A. Villalpando", 435, 338, 192, 132)
$Button1 = GUICtrlCreateButton("Pulsa para elegir un archivo.", 56, 16, 321, 41)
$Label1 = GUICtrlCreateLabel("Label1", 32, 88, 373, 36)
$Button2 = GUICtrlCreateButton("Pulsa para subir ese archivo al servidor web.", 56, 152, 321, 41)
; Juan A. Villalpando - KIO4.COM
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop

    ; ELIGE el ARCHIVO
    Case $msg=$Button1
$archivo_elegido = FileOpenDialog("Elige", @WindowsDir & "\", "Imagenes (*.jpg;*.bmp)|Videos (*.avi;*.mpg))", $FD_FILEMUSTEXIST)
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "", "Ningún archivo(s) seleccionado.")
        FileChangeDir(@DocumentsCommonDir)  ;  Va a la carpeta de Documentos.
    Else
        FileChangeDir(@DocumentsCommonDir) ;  Va a la carpeta de Documentos.
        $archivo_elegido = StringReplace($archivo_elegido, "|", @CRLF)
        GUICtrlSetData($Label1,$archivo_elegido) ; Pone la dirección del archivo en Label1
    EndIf

    ; SUBE el ARCHIVO
    Case $msg=$Button2
        $sube_por_php = "http://kio4.esy.es/sube_archivo_autoit.php?action=subelo" ; PHP que tomará el archivo y lo guardará.
$Formulario = _
        '
' & _ ' ' & _ '
' $Abrir = _WinHttpOpen() $envio = _WinHttpSimpleFormFill($Formulario, $Abrir, Default, "name:sube_archivo", $archivo_elegido) ; Rellena el Formulario ; Vuelta de información. If @error Then MsgBox(4096, "Error.", "Número de error = " & @error, 3) Else Beep(1000,400) MsgBox(0, "Información.", "Recibido:" & @CRLF & $envio & @CRLF, 3) EndIf _WinHttpCloseHandle($Formulario) _WinHttpCloseHandle($Abrir) EndSelect Wend Exit

_____________________________________________________
- Comentarios.

- Si queremos filtrar otros tipo de archivos ponemos:

"Imagenes (*.jpg;*.bmp)|Videos (*.avi;*.mpg) |Texto (*.txt;*.doc;*.docx)"

- En el código, cuando la línea es muy larga, se puede escribir en distintos renglones indicándolos mediante la línea de guión bajo _

$Formulario = _
'<form action="'
& $sube_por_php & '" method="post" enctype="multipart/form-data">' &
_
' <input type="file" name="sube_archivo"/>'
&
_
'</form>'

- Aquí llama al archivo PHP que se encuentra en el servidor web.

$sube_por_php = "http://kio4.esy.es/sube_archivo_autoit.php?action=subelo" ; PHP que tomará el archivo y lo guardará.

- El PHP devuelve una respuesta mediante echo, (también se puede devolver mediante print).

- El AutoIt recoje esa información mediante $envio.

_____________________________________________________
- Propuesta.

- Busca como sería la elección de varios archivos en el FileOpenDialog, MULTISELECT

_______________________________________________

_________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información