PDA

Ver la Versión Completa : Subir fichero a pagina Web via HTTP usando un script php


jmoran
11-07-2003, 12:44:11
Hola

Necesito subir un fichero a internet mediante mi programa Delphi. Para ello pretendo usar un componente Indy Tidhttp que llamaria con Post a una página php encargada de recibir este fichero.

Mi aplicacion Delphi se encargaria de simular el comportamiento del formulario previo al modulo de subir.php y pasaria los datos a este, que se encargaria de colocar el fichero en su lugar correspondiente.

El problema es que si hago una peticion Post con un dato simple. Por ejemplo una cadena nombre, el modulo php la muestra facilmente, pero no se como enviarle el fichero. He probado con codigos que usan la codificacion multipart/form-data pero siempre obrengo un error o no se encuentra la página. Supongo que lo que me falta es construir de forma adecuada los datos enviados en el POST.

El funcionamiento seria el siguiente.

* la aplicacion generara un fichero automaticamente.
* crear stream para contener la cabecera del post.
* --> construir los datos del POST
* Idhttp1.Post(url,stream_con_datos_fichero, stream_respuesta);

¿que tipo de stream deberia utilizar y que valores deberia llevar en sus propiedades?.

He probado con la clase TIdMultiPartFormDataStream pero no se como indicarle los datos de forma correcta.

El modulo php que recibe el POST es similar al siguiente:

if (is_uploaded_file($fichero) && !empty($fichero)) {
$fichdestino="$directorio"."$fichero_name";
move_uploaded_file($fichero, "$fichdestino");