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:
A destacar:--> 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
- 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
$archivo = $_FILES['fxtkt']['tmp_name']; $tamanio = $_FILES['fxtkt']['size']; $tipo = $_FILES['fxtkt']['type']; $nombre = $_FILES['fxtkt']['name']; if($archivo != "none"){ $ret = mysql_query("insert into vbxtkt(name_xtkt, file_xtkt) values('".$_POST['nxtkt']."', ".$fxtkt.")"); if($ret){echo("1");} else{echo("0");} }else{ echo("-1"); }
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
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>'); 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.