Foros del Web » Programando para Internet » PHP »

Subir archivos de otra forma.

Estas en el tema de Subir archivos de otra forma. en el foro de PHP en Foros del Web. Hola amigos, hace unos dias pedi ayuda con este mismo tema, me dieron una solucion(cosa que agradezco mucho) pero no funcionó seguí igual. Mi pregunta ...
  #1 (permalink)  
Antiguo 07/09/2006, 00:03
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 17 años, 10 meses
Puntos: 0
Subir archivos de otra forma.

Hola amigos, hace unos dias pedi ayuda con este mismo tema, me dieron una solucion(cosa que agradezco mucho) pero no funcionó seguí igual.

Mi pregunta es, puedo hacer de otra forma la subida de archivos?

Sabemos que lo mas comun es desde un formulario colocando una etiqueta <input type="file"...etc.> enviando por el metodo POST y recibiendo varios valores o parametros como el size, el tmp, el nombre del archivo, etc, con $_FILE[]. Bueno y desde luego la subida con la funcion copy() o move_uploaded_file(), en fin.

Existe otra forma de hacerlo?, alguien a optado por otra forma menos comun?
Si lo han hecho, PORFAVOR AYUDA.

La forma en que lo estoy haciendo funciona localmente pero no en internet.

Lo hago de esta forma:

Desde un link envio los parametros (algo parecido como a la forma comun pero con el metodo GET) de esta forma:

<a href="../log_errores/log_errores.php?nom=documento.txt&ruta=c:\document o.txt">Logerrores...</a>

recibo los parametros en log_errores.php:

$nom=$_GET[nom];//esta seria algo asi como $_FILES['archivo']['name'];
$ruta=$_GET[ruta];//y este $_FILES['archivo']['tmp_name'];


donde he aqui la diferencia ya que la segunda es un temporal de ese archivo que el crea en c:\WINDOWS\Temp\phpt68.tmp y lo coloca de nombre phpt68.tmp y a todos les coloca phpalgo.tmp localmente; en internet lo coloca en /tmp/phpVBFXH7 sin ninguna extencion(pero es obvio que es tmp por la carpeta en la que lo coloca)

Luego subo este archivo donde yo quiera con copy($archivo, ruta); Como les digo localmente funciona perfecto, pero al hacerlo en internet este me saca un error:

Warning: copy(c:\\documento.txt): failed to open stream: No such file or directory in /usr/local/psa/home/vhosts/sadmin.net/httpdocs/webmaster/log_errores/log_errores.php on line 49.

Siendo la linea 49 la de la funcion copy(), la ruta esta bien, lo que me parece es en cuanto al archivo. Por eso comento la diferencia con la opcion mas comun de subir archivos, crear un temporal.

Aunque estoy probando crear un tmp con la funcion tempnam(); vamos a ver que sucede, pero si alguien me ayuda con una mejor idea o un consejo le agradeceria muchisimo.

Gracias por lo menos por leer este articulo.
  #2 (permalink)  
Antiguo 07/09/2006, 03:43
Avatar de Lolaloleitor  
Fecha de Ingreso: abril-2006
Mensajes: 22
Antigüedad: 17 años, 11 meses
Puntos: 0
Hola, Yo estoy haciendo lo mismo y a mi me sale, mira el mensaje uploads "fantasmas".En el libro que he estudiado dice que no es aconsejable usar copy, que mejor usar move_uploaded_file(); comprueba que el directorio donde lo quieres subir tiene permiso de escritura (desde el programa que utilices para subir archivos por ftp , pinchas en la carpeta con el boton derecho /propiedades)
No se la utilidad de hacerlo con get, pero pa mi que no es lo mismo.

Suerte
  #3 (permalink)  
Antiguo 11/09/2006, 10:20
 
Fecha de Ingreso: mayo-2006
Mensajes: 49
Antigüedad: 17 años, 10 meses
Puntos: 0
Upload de archivos automatico

Hola, gracias por tu consejo.

Quisiera saber como pasas la ruta donde esta el archivo en tu PC para el upload, en mi caso, no escojo el archivo, le mando la ruta directamente(c:\carpeta\documento.txt).

A mi tambien me funciona pero loacalmente(intranet), al hacerlo en internet me produce un error, como si no encontrara el archivo en mi equipo con la ruta que yo le envio.

Espero tu pronta respuesta, o la de cualquiera que me quiera ayudar...

Cluster, dame tu opinion...
  #4 (permalink)  
Antiguo 11/09/2006, 11:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
El problema es que cuando envias via GET no envia los datos, ya que el browser te tiene que enviar los datos binarios del archivo que estas subiendo, y via get no es posible (de hecho la forma tiene que ir como multipart/form-data) para que php pueda leer los archivos y crear su archivo temporal.

En local (intranet) es posible que funcione ya que a PHP le estas pasando un string "c:\carpeta\documento.txt" y al usar copy() puedes copiar un archivo que para PHP es de parte del servidor y no del cliente (por el cliente estar en local)

Una vez que lo subes a tu servidor no funciona mas porque PHP ya no conoce la ruta "c:\carpeta\documento.txt" y no es posible para PHP "leer" un archivo de tu computadora sin que el browser lo haya enviado.

Si realmente quieres hacer esto yo recurriria a otras formas como un control ActiveX en C++, VB, o un Applet de Java.
  #5 (permalink)  
Antiguo 11/09/2006, 14:35
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 0
prueba con Curl que tiene librerías para php y permite hace upload y download de ftp, https, http, ...
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 14:55.