Spanish Ayuda con subir imagen por ftp o HttpJob [SOLUCIONADO]

ebqlabs

Active Member
Licensed User
Hola, tengo este código para subir un archivo en ftp.

B4X:
Dim ftp As FTP
ftp.Initialize("ftp","SERVIDOR","21","USUARIO", "CONTRASEÑA")

sub boton_click
ftp.UploadFile(File.DirRootExternal, "sign.png",False,"/public_html/ala/")
end sub

Sub ftp_UploadCompleted (ServerPath As String, Success As Boolean)
    If Success = True Then
        Msgbox("ok","")
    Else
        Msgbox("error","")
    End If
End Sub
Se demora un poco el mensaje, pero no realiza la acción, sale el error.


y este otro por HttpJob

B4X:
Dim GrbFir  As HttpJob

sub boton_click
GrbFir.initialize("GrbFir", Me) 
    GrbFir.PostFile("www.ruta", File.DirRootExternal, "sign.png")
 
end sub

y en mi php, pero no se como poder recibirlo

B4X:
$nombre_archivo = $_FILES['archivo']['name'];
        $tipo_archivo = $_FILES['archivo']['type'];
        $tamano_archivo = $_FILES['archivo']['size'];
        $tmp_archivo = $_FILES['archivo']['tmp_name'];
        $nombre_archivo=$nombre_archivo;

        $remplazar = array("-"," ",":","_");
        $remplazarporesto = array("","","","");
        $nombre_archivo2 = str_replace($remplazar, $remplazarporesto, $nombre_archivo);

        if (move_uploaded_file($_FILES['archivo']['tmp_name'],'../../../archivos/firmas/'.$nombre_archivo2)) {
        echo $nombre_archivo2;
        }else{
        echo "";



Alguna ayuda, saludos.
 
Last edited:

Descartex

Well-Known Member
Licensed User
Longtime User
Muy buenas,
Prueba poniendo en modo pasivo
B4X:
ftp.PassiveMode = True
Normalmente es lo que hace que no puedas comunicarte con el, cree q eres un ataque y te tira fuera.
 

ebqlabs

Active Member
Licensed User
Muy buenas,
Prueba poniendo en modo pasivo
B4X:
ftp.PassiveMode = True
Normalmente es lo que hace que no puedas comunicarte con el, cree q eres un ataque y te tira fuera.

Hola, lo dejo asi

B4X:
Dim ftp As FTP
ftp.Initialize("ftp","SERVIDOR","21","USUARIO", "CONTRASEÑA")

sub boton_click
ftp.UploadFile(File.DirRootExternal, "sign.png",False,"/public_html/ala/")
ftp.PassiveMode = True
end sub

Sub ftp_UploadCompleted (ServerPath As String, Success As Boolean)
    If Success = True Then
        Msgbox("ok","")
    Else
        Msgbox("error","")
    End If
End Sub


Se demora como un minuto para aparecer el mensaje de error.
No me funciono
 

rscheel

Well-Known Member
Licensed User
Longtime User
Te falta el nombre de imagen que va a quedar en el servidor.

B4X:
Dim ftp As FTP
ftp.Initialize("ftp","SERVIDOR","21","USUARIO", "CONTRASEÑA")

sub boton_click
ftp.UploadFile(File.DirRootExternal, "sign.png",False,"/public_html/ala/sign.png")
ftp.PassiveMode = True
end sub

Sub ftp_UploadCompleted (ServerPath As String, Success As Boolean)
    If Success = True Then
        Msgbox("ok","")
    Else
        Msgbox("error","")
    End If
End Sub
 

ebqlabs

Active Member
Licensed User
Hola, lo dejo asi

B4X:
Dim ftp As FTP
ftp.Initialize("ftp","SERVIDOR","21","USUARIO", "CONTRASEÑA")

sub boton_click
ftp.UploadFile(File.DirRootExternal, "sign.png",False,"/public_html/ala/")
ftp.PassiveMode = True
end sub

Sub ftp_UploadCompleted (ServerPath As String, Success As Boolean)
    If Success = True Then
        Msgbox("ok","")
    Else
        Msgbox("error","")
    End If
End Sub


Se demora como un minuto para aparecer el mensaje de error.
Te falta el nombre de imagen que va a quedar en el servidor.

B4X:
Dim ftp As FTP
ftp.Initialize("ftp","SERVIDOR","21","USUARIO", "CONTRASEÑA")

sub boton_click
ftp.UploadFile(File.DirRootExternal, "sign.png",False,"/public_html/ala/sign.png")
ftp.PassiveMode = True
end sub

Sub ftp_UploadCompleted (ServerPath As String, Success As Boolean)
    If Success = True Then
        Msgbox("ok","")
    Else
        Msgbox("error","")
    End If
End Sub


Realice exacto lo que esta, la imagen existe en el dispositivo. Al momento de hacer click se demora mucho, y después de un minuto me sale el mensaje de error
 

rscheel

Well-Known Member
Licensed User
Longtime User
Prueba con esto, si no te funciona es problema de acceso al servidor.

B4X:
Sub Process_Globals
    Dim FTP As FTP
End Sub
Sub Globals

End Sub

Sub Activity_Create(FirstTime As Boolean)
    
        FTP.Initialize("FTP", "ftp.example.com", 21, "user", "password")
    
End Sub

B4X:
Sub boton_Click
FTP.UploadFile(File.DirRootExternal, "image.png", False, "/public_html/ala/image.png")
End Sub

Sub FTP_UploadProgress (ServerPath As String, TotalUploaded As Long, Total As Long)
    Dim s As String
    s = "Uploaded " & Round(TotalUploaded / 1000) & "KB"
    If Total > 0 Then s = s & " out of " & Round(Total / 1000) & "KB"
    Log(s)
End Sub

Sub FTP_UploadCompleted (ServerPath As String, Success As Boolean)
    If Success = True Then
      Msgbox(ServerPath & ", Success=" & Success,"")
    Else
      Msgbox("Error    "&LastException.Message,"")
    End If
End Sub
 

ebqlabs

Active Member
Licensed User
Prueba con esto, si no te funciona es problema de acceso al servidor.

B4X:
Sub Process_Globals
    Dim FTP As FTP
End Sub
Sub Globals

End Sub

Sub Activity_Create(FirstTime As Boolean)
   
        FTP.Initialize("FTP", "ftp.example.com", 21, "user", "password")
   
End Sub

B4X:
Sub boton_Click
FTP.UploadFile(File.DirRootExternal, "image.png", False, "/public_html/ala/image.png")
End Sub

Sub FTP_UploadProgress (ServerPath As String, TotalUploaded As Long, Total As Long)
    Dim s As String
    s = "Uploaded " & Round(TotalUploaded / 1000) & "KB"
    If Total > 0 Then s = s & " out of " & Round(Total / 1000) & "KB"
    Log(s)
End Sub

Sub FTP_UploadCompleted (ServerPath As String, Success As Boolean)
    If Success = True Then
      Msgbox(ServerPath & ", Success=" & Success,"")
    Else
      Msgbox("Error    "&LastException.Message,"")
    End If
End Sub
No, me sale error

y de esta otra forma se podrá real izarlo

B4X:
Dim GrbFir  As HttpJob

sub boton_click
GrbFir.initialize("GrbFir", Me)
    GrbFir.PostFile("www.ruta", File.DirRootExternal, "sign.png")
end sub
 

Descartex

Well-Known Member
Licensed User
Longtime User
Puedes postear el log con el error que te da?
 

rscheel

Well-Known Member
Licensed User
Longtime User
Puede que el servidor, bloque el acceso por ftp, realizaste el proceso de descargar al teléfono una imagen por ftp desde el servidor.
 

ebqlabs

Active Member
Licensed User
Puedes postear el log con el error que te da?

14j6cut.png



Puede que el servidor, bloque el acceso por ftp, realizaste el proceso de descargar al teléfono una imagen por ftp desde el servidor.

Como se realiza la descarga ?
 

rscheel

Well-Known Member
Licensed User
Longtime User
He estado viendo, sabes que no se si estoy bien en la ruta del ftp

2s9ouh5.png


si lo quisiera dejar en la carpeta ala, como debería ser ?

B4X:
FTP.UploadFile(File.DirRootExternal, "sign.png", False, "/public_html/ala/sign.png")

De la siguiente manera, ya que el acceso ftp ya te lleva directamente a la carpeta plublic_html.
B4X:
FTP.UploadFile(File.DirRootExternal, "sign.png", False, "/ala/sign.png")
 

ebqlabs

Active Member
Licensed User
De la siguiente manera, ya que el acceso ftp ya te lleva directamente a la carpeta plublic_html.
B4X:
FTP.UploadFile(File.DirRootExternal, "sign.png", False, "/ala/sign.png")

He hecho que suba el archivo, gracias

B4X:
Sub Process_Globals
    Dim FTP As FTP
End Sub
Sub Globals

End Sub

Sub Activity_Create(FirstTime As Boolean)
        FTP.Initialize("FTP", "ftp.example.com", 21, "user", "password")
        FTP.PassiveMode = True

End Sub

B4X:
sub boton_click
FTP.UploadFile(File.DirRootExternal, "sign.png", False, "public_html/sign.png")
end sub

Sub FTP_UploadProgress (ServerPath As String, TotalUploaded As Long, Total As Long)
    Dim s As String
    s = "Uploaded " & Round(TotalUploaded / 1000) & "KB"
    If Total > 0 Then s = s & " out of " & Round(Total / 1000) & "KB"
    Log(s)
End Sub

Sub FTP_UploadCompleted (ServerPath As String, Success As Boolean)
    If Success = True Then
      Msgbox(ServerPath & ", Success subio=" & Success,"")
    Else
      Msgbox("Error    "&LastException.Message,"")
    End If
End Sub



Pero al abrirlo del servidor, me sale imagen no disponible. Incluso subir un archivo de .text

pero si lo bajo me funciona, bueno por en mientra esta todo bien. Gracias
 

ebqlabs

Active Member
Licensed User
De la siguiente manera, ya que el acceso ftp ya te lleva directamente a la carpeta plublic_html.
B4X:
FTP.UploadFile(File.DirRootExternal, "sign.png", False, "/ala/sign.png")


Amigo todo bien, sabes como mostrar esa imagen en android. por ahora estoy guardando la ruta en una tabla y esta en el ftp ?
saludos
 

rscheel

Well-Known Member
Licensed User
Longtime User
Amigo todo bien, sabes como mostrar esa imagen en android. por ahora estoy guardando la ruta en una tabla y esta en el ftp ?
saludos
Con un imageview, le das la ruta de la imagen el el teléfono y la muestras.
 

vbmundo

Well-Known Member
Licensed User
Hola,

Es que es lógico que te siga dando error aun con el PASIVE MODE.

Se que ya lo has solucionado.. pero creo que no te has dado cuenta de tu error..

Revisa esto que has publicado

B4X:
sub boton_click
ftp.UploadFile(File.DirRootExternal, "sign.png",False,"/public_html/ala/")
ftp.PassiveMode = True
end sub

Primero pones a subir el archivo y luego pretendes setearle el modo PASIVO... es a la inversa.. debes primero setear los parametros y luego decirle que suba el archivo..

Saludos
 

Melek

Member
Licensed User
Hola, disculpen que reviva el POST, pero por seguridad sería correcto hacerlo mediante FTP? o podría enviarse por usando un archivo PHP de por medio?
Yo lo he hecho usando AppInventor y PHP, pero no sé todavía como hacerlo aquí, o bueno en todo caso el compilar la app con Release (Obfuscated) se compila sin opción a descompilar el código facilmente? Ya que el dejar datos del servidor ftp, podría dejar apertura para ataques por allí
 

Descartex

Well-Known Member
Licensed User
Longtime User
Llamadme paranoico, pero yo no metería en la app los datos de mi FTP...
Todas las subidas de ficheros las hago mediante HTTP sobre un PHP.
Un saludo.
 

Melek

Member
Licensed User
Llamadme paranoico, pero yo no metería en la app los datos de mi FTP...
Todas las subidas de ficheros las hago mediante HTTP sobre un PHP.
Un saludo.
Así es, yo así lo hago en programación web y en AppInventor, pero aquí todavía no se como se hace el PostFile
 
Top