Foros del Web » Programando para Internet » PHP »

Archivos VB.net - PHP

Estas en el tema de Archivos VB.net - PHP en el foro de PHP en Foros del Web. Buenas, Estoy creando un repositorio de apps en el cual almaceno versiones de varias de mis apps. Entonces, estoy intentando crear una aplicación de escritorio ...
  #1 (permalink)  
Antiguo 17/12/2012, 03:37
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Archivos VB.net - PHP

Buenas,

Estoy creando un repositorio de apps en el cual almaceno versiones de varias de mis apps.

Entonces, estoy intentando crear una aplicación de escritorio con VB.net que me facilite la tarea. El algoritmo que intento seguir es el siguiente:

Código:
--> click en botón (por ejemplo "subir última versión de APP test_1"): lanza la rutina fupload.

public sub fupload
        Dim post(1) As String
        Dim res As Boolean
        res = Module1.cpy("ruta_origen\archivo_con_nombre_largo", "ruta_origen\ACNL")
        post(0) = "nxtkt=" + System.Web.HttpUtility.UrlEncode("test1")
        If res Then
            post(1) = "fxtkt=" + System.Web.HttpUtility.UrlEncode("ruta_origen\ACNL")
        Else
            post(1) = "fxtkt=" + System.Web.HttpUtility.UrlEncode("ruta_origen\archivo_con_nombre_largo")
        End If

        Dim f As New StreamWriter("../_data/text_1.HTML", False)
        Module1.fwrite(f, Module1.GetHTML("http://www.miweb.com/subir.php", post))
End sub
A destacar:

- cpy copia un archivo del primer parámetro al segundo. Lo uso para acortar los nombres y evitar conflictos (por si están en uso, o algo así...)
- getHTML es una función que hace una llamada HTTP a la ruta indicada; si hay datos post (array), los envía también. Retorna el HTML generado por la página

- Tanto cpy como getHTML están testeados y funcionan 100%

Bien, ahora empieza el meollo del problema:

Primero he probado a llamar directamente a una página que hace lo siguiente:

Código PHP:
Ver original
  1. $archivo = $_FILES['fxtkt']['tmp_name'];
  2. $tamanio = $_FILES['fxtkt']['size'];
  3. $tipo = $_FILES['fxtkt']['type'];
  4. $nombre = $_FILES['fxtkt']['name'];  
  5.  
  6. if($archivo != "none"){
  7.     $fp = fopen($archivo, "rb");
  8.     $fxtkt = fread($fp,$tamanio);
  9.     $txtkt = addslashes($fxtkt);
  10.     fclose($fp);
  11.  
  12.     $connection = mysql_select_db("database",($con = mysql_connect("host","user","pass")));
  13.     $ret = mysql_query("insert into vbxtkt(name_xtkt, file_xtkt) values('".$_POST['nxtkt']."', ".$fxtkt.")");
  14.    
  15.     if($ret){echo("1");}
  16.     else{echo("0");}
  17. }else{
  18.     echo("-1");
  19. }

Pero me da error en fopen, diciendo que $archivo está vacío (ya se que el if está "mal"...), así que he cambiado de estrategia, usando una página "puente", que hace lo siguiente:

Código PHP:
Ver original
  1. echo('<form name="up" action="subir.php" method="post" enctype="multipart/form-data"><input type="text" name="nxtkt" value="'.$_POST['nxtkt'].'" /><input type="file" name="fxtkt" value="'.$_POST['fxtkt'].'" /></form>');
  2. echo('<script type="text/javascript">document.up.submit();</script>');

Adicionalmente, en subir.php he puesto un print_r de $_POST y $_FILE. el $_POST lo tengo bien, pero en cuanto a $_FILES, me da un array con error 4 (no han subido fichero...)

No sé dónde podría estar el error... ¿me podéis ayudar?

Gracias.
  #2 (permalink)  
Antiguo 17/12/2012, 06:38
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Archivos VB.net - PHP

No puedes agregar un valor a un input:file por seguridad....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 17/12/2012, 06:55
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Archivos VB.net - PHP

Ah... así es eso...

No hay alguna manera para hacer lo que quiero? No se, quizás con AJAX o algo así...

Gracias por responder.
  #4 (permalink)  
Antiguo 17/12/2012, 06:59
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Archivos VB.net - PHP

No hay forma, lo unico es indicarle al usuario que debe agregar manualmente el archivo al input, no hay forma como manipular un input:file...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 17/12/2012, 07:09
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Archivos VB.net - PHP

Pero claro, mi idea era hacerlo de manera automática...

Es decir, usaba PHP como un puente entre mi VB.net y mi base de datos, de manera que quiero hacer lo siguiente:

VB.net -> llamada HTTP con POST -> web auxiliar -> MySQL

Realmente no sé si me estoy haciendo un lío con PHP por en medio, pero se que para que VB.net pueda acceder a MySQL hace falta un driver o algo así... por eso uso PHP como intermediario, para poder hacer portable mi .exe y, digamos, usarlo como una simple interface.

No se si se entiende lo que quiero decir...

De todas maneras investigaré otros métodos (se que con JAVA se accede fácil a una base de datos MySQL, lo que no se es como llevará el tema BLOB...)

Gracias de nuevo por responder.
  #6 (permalink)  
Antiguo 17/12/2012, 07:15
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Archivos VB.net - PHP

No entiendo mucho como trabaja o como quieres que trabaje tu sistema, en todo caso estoy suponiendo que tanto el archivo PHP y su servidor están en la misma maquina que el exe en VB, si es así solo envia el nombre y la ruta del archivo a PHP, en caso de que el servidor este en un hosting o en un equipo remoto porque no lo subes vía FTP, ya que por seguridad no hay forma de subir un archivo con input:file de manera automática...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 17/12/2012, 07:29
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Archivos VB.net - PHP

porque no haces toda la interfaz desde PHP?
  #8 (permalink)  
Antiguo 17/12/2012, 10:54
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Archivos VB.net - PHP

Cita:
Iniciado por Nemutagk Ver Mensaje
No entiendo mucho como trabaja o como quieres que trabaje tu sistema, en todo caso estoy suponiendo que tanto el archivo PHP y su servidor están en la misma maquina que el exe en VB, si es así solo envia el nombre y la ruta del archivo a PHP, en caso de que el servidor este en un hosting o en un equipo remoto porque no lo subes vía FTP, ya que por seguridad no hay forma de subir un archivo con input:file de manera automática...
Muy buena idea el FTP.

El tema está en que tanto el hosting como la base de datos son externas (para tener siempre mi repositorio on-line). Pero obviamente tengo los datos FTP, :-p

HiToGoRoShi La hago con VB.net porque hace mucho que no practico, y pensé que sería un buen ejercicio para "desoxidarme"... jeje

Ahora me pondré a mirar cómo funciona el FTP tanto con VB.net como con PHP (por si acaso...)

Gracias a ambos por contestar!

Etiquetas: html, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:05.