Foros del Web » Programando para Internet » PHP »

averiguar directorio cuando se hace un upload file

Estas en el tema de averiguar directorio cuando se hace un upload file en el foro de PHP en Foros del Web. Hola gente, paso por aqui porque tengo una inquietud que de seguro es una tonteria, pero no se me ocurre como pillarlo, y navegando por ...
  #1 (permalink)  
Antiguo 30/09/2006, 20:42
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Chile
Mensajes: 156
Antigüedad: 19 años, 7 meses
Puntos: 0
averiguar directorio cuando se hace un upload file

Hola gente, paso por aqui porque tengo una inquietud que de seguro es una tonteria, pero no se me ocurre como pillarlo, y navegando por INET, no he podido encontrar mi solución...

Les cuento un poco, estoy haciendo una web donde se deberán subir unas imagenes, todo el tema del upload file, me funciona re bien, lo que pasa es que estoy haciendo un thumbnail, y quiero que cuando suba la foto en grande quiero achicar la foto y subir la imagen previa osea pequeña.... la funcion para achicar la imagen esta lista, solo necesito decirle de donde tiene que sacar la imagen... cuando cargo el archivo en el input FILE... se va con toda la direccion, que es justo lo que yo necesito...

Alguien sabe como recuperar esta direccion?????


Muchas Gracias
  #2 (permalink)  
Antiguo 30/09/2006, 21:05
 
Fecha de Ingreso: septiembre-2006
Mensajes: 196
Antigüedad: 17 años, 7 meses
Puntos: 0
mira este link guiweb, ahi aparece un thumbnail, que quizas te pueda servir mas que el tuyo:

http://www.forosdelweb.com/f18/tutorial-ejemplo-subir-archivos-bd-guardando-bd-binario-127775/

de paso, podrias poner las paginas que usas para tus upload porfavor? yo estoy teniendo problemas con las mia y no he podido subir mis imagenes
  #3 (permalink)  
Antiguo 02/10/2006, 07:21
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Chile
Mensajes: 156
Antigüedad: 19 años, 7 meses
Puntos: 0
mira sinceramente, aprecio tu ayuda, pero mi pregunta no fue de donde puedo sacar un thumbnail ya hecho, para eso me hubiese metido a hotscripts y de ahi tengo cientos para descargar... mi pregunta es otra... necesito saber como recuperar la direccion de un input type FILE...

No me gusta la idea de tener que copiar las cosas de los demas...

Saludos y gracias
  #4 (permalink)  
Antiguo 02/10/2006, 08:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por guiweb Ver Mensaje
mira sinceramente, aprecio tu ayuda, pero mi pregunta no fue de donde puedo sacar un thumbnail ya hecho, para eso me hubiese metido a hotscripts y de ahi tengo cientos para descargar... mi pregunta es otra... necesito saber como recuperar la direccion de un input type FILE...

No me gusta la idea de tener que copiar las cosas de los demas...

Saludos y gracias
No entendí mucho que pretendes ..

En principio tu subes tu imagen a tamaño original. ok? ..

Con PHP y el proceso de "upload" .. no sé como trabajas ese punto. No sé si mueves tu imagen (original) a su destino definitivo o pretendes hacer el proceso del thumbnail de donde PHP la sube en forma temporal.

Lo normal es que muevas la imagen (archivo) a su destino definitivo, eso lo harás en tu función:

Código PHP:
move_uploaded_file($_FILES['imagen']['tmp_name'],"imagenes/".$_FILES['imagenes']['name']); 
Tu imagen original . .en este caso la movistes hacia el directorio imagenes/ con el nombre original que tenía ($_FILES['imagen']['name']) .. así que de ahí en esa ruta tal cual la puedes tomar para aplicar tu función que genera el thumbnail.

El "thumbnail" se genera a partir del archivo original (imagen) que subistes .. no se "sube" nada más. (eso es lo que confunde de tu explicación del problema .. aclara bien de donde pretendes "subir" ese thumbnail .. cuando en realidad se "genera" en el servidor).

Como veras, este proceso se hace en el mismo código que realizas el "upload".

(supongo que lo harás así .. si expusieras el código que usas o tienes nos aclaríamos mejor todos y no te darían respuestas que tal vez no es lo que tu preguntas pero realmente no te entendemos!).

Cita:
No me gusta la idea de tener que copiar las cosas de los demas...
No se trata de copiar las cosas de los demas, sino de "aprender de los demas" .. el concepto es diferente. Si lo copias sin investiagar por que lo hace "así" ... eso no tiene sentido más que el usarlo y esperar que te funcione como necesites.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 02/10/2006, 10:05
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Chile
Mensajes: 156
Antigüedad: 19 años, 7 meses
Puntos: 0
Hola Cluster como siempre... las respuestas sabias vienen de ti...

Mira lo que estoy haciendo es un simple upload con el tmp_name etc etc...
mi unico problema, es que tengo una funcion que cuando sube la imagen al servidor, tiene que buscar en mi PC la ruta desde donde se subio, tomar esa imagen y achicarla y posteriormente subir esta imagen pequeña.

osea los pasos son estos:

1.- subo la imagen al server.
2.- busco en mi pc la imagen que se subio y la achico
3.- la imagen pequeña queda en un directorio que yo indique
4.- subo la imagen pequeña a una carpeta que tenga relacion con las imagenes

eso es todo... por eso necesito saber la ruta desde donde salio mi iamgen osea el punto 2.

intenté subir la imagen en grande y hacer que la funcion me achicara la imagen en el servidor, pero no le veo buena cara a eso...

en lo de copiar o aprender, opino lo mismo que tu, de echo mirando en el foro he aprendido montones, solo que no me gustó la forma en que gazuzax dijo "quizas te pueda servir mas que el tuyo", osea me dijo copia y pega, por eso mi respuesta.

Saludos
  #6 (permalink)  
Antiguo 02/10/2006, 10:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
es que tengo una funcion que cuando sube la imagen al servidor, tiene que buscar en mi PC la ruta desde donde se subio, tomar esa imagen y achicarla y posteriormente subir esta imagen pequeña.
Y esa funcion que es? .. Un ActiveX o Applet Java?

Cita:
eso es todo... por eso necesito saber la ruta desde donde salio mi iamgen osea el punto 2.
Eso sólo lo podrías averigüar con Javascript, tomar dicho dato del campo FILE del formulario HTML y montarlo sobre otro campo (hidden lo más probable) para hacerlo llegar a PHP. PHP por su $_FILES sólo obtiene el nombre del archivo temporal y su nombre (sin ruta) original. Haz tu consulta así como te lo planteo en el foro de Javacript: "Como tomar el dato de un campo FILE de HTML al seleccionar un archivo y colocarlo en otro campo hidden en el mismo formulario HTML ...".

Cita:
intenté subir la imagen en grande y hacer que la funcion me achicara la imagen en el servidor, pero no le veo buena cara a eso...
No sé por qué no le ves buena cara .. Por supuesto tomar una imagen pesada va a consumir un extra se recursos (memoria/tiempo ejecución) del servidor, puede ser que las limitaciones que PHP impone al respecto te hagan imposible trabajar con ciertas imagenes de cierto tamaño/peso (bytes).

Pero, .. esta modalidad es la más standard y segura. Si usas un "activeX" no todo el mundo los autoriza (por desconocimiento .. etc) .. Y, puestos en este caso, consiguete un ActiveX más completo .. hay algunos por ahí que gesionan "uploads multiples" para automatizar más el proceso: subir directorios enteros, filtrar por tamaño/extensión -antes- de subir tus archivos, etc ... (cosa que con un "file" no puedes hacer).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 02/10/2006, 10:46
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Chile
Mensajes: 156
Antigüedad: 19 años, 7 meses
Puntos: 0
mira yo creo que la solucion mas inteligente y la que mas se me acomodaria a mi necesidad es la ultima que mencionas.... sobre hacer un upload multiple.. pero de donde puedo sacar una funcion activex que haga eso???...

la funcion que achica la imagen esta echa en php, no es nada del otro mundo
  #8 (permalink)  
Antiguo 02/10/2006, 11:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por guiweb Ver Mensaje
mira yo creo que la solucion mas inteligente y la que mas se me acomodaria a mi necesidad es la ultima que mencionas.... sobre hacer un upload multiple.. pero de donde puedo sacar una funcion activex que haga eso???...

la funcion que achica la imagen esta echa en php, no es nada del otro mundo
De google:
upload multiple activex

(Que sean gratuitos y que tu los sepas usar .. es otra cosa, pero como todo .. esto se aprende).

Cita:
la funcion que achica la imagen esta echa en php, no es nada del otro mundo
Bueno .. y entonces a ver si nos aclaramos .. ¿para que quieres la ruta de "TU PC" donde tienes tu imagen original que vas a subir al servidor si el proceso se va hacer en PHP!? .. Donde está esa "función que hace su proceso en el "cliente".

(Entiendes el concepto "cliente-servidor" en todo este proceso? .. parece que estás confundiento o asumiendo por qué tal vez en tus pruebas el "Cliente y el Servidor" es la misma máquina..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 02/10/2006, 11:17
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Chile
Mensajes: 156
Antigüedad: 19 años, 7 meses
Puntos: 0
claro. me parece que me estoy confundiendo un poco... por que mi maquina hace de server... mira voy a darle una vuelta mejor a esto a pensarlo mejor y despues vuelvo con las dudas..

Gracias
  #10 (permalink)  
Antiguo 02/10/2006, 11:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por guiweb Ver Mensaje
claro. me parece que me estoy confundiendo un poco... por que mi maquina hace de server... mira voy a darle una vuelta mejor a esto a pensarlo mejor y despues vuelvo con las dudas..

Gracias
Sea como sea tu caso: que el cliente sea el mismo que el servidor o como es lo normal "en producción" tu aplicación que el servidor esté separado de los clientes; PHP no puede tomar un archivo así como así de un "cliente" .. para eso en HTML se implemetó el campo "FILE" en formularios HTML con sus restricciones, además que la "ruta en el cliente" es lo de menos, tu vas a gestionar tus archivos en el "servidor".

Ahora .. si quieres algunas funcionalidades más para solventar las limitaciones que ya te he comentado, ahí se usan "ActiveX" que son "programas" escritos para funcionar bajo ciertos navegadores y que se "instalan" como módulos de este donde normalmente se "autoriza" hacer cosas que el "HTML" de por sí y su naturaleza no puede. Cara a "PHP" lo recibiras por la misma vía ($_FILES) de cierta forma (según trabaje ese ActiveX los archivos).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 02/10/2006, 15:07
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Chile
Mensajes: 156
Antigüedad: 19 años, 7 meses
Puntos: 0
Cita:
Iniciado por Cluster Ver Mensaje
Sea como sea tu caso: que el cliente sea el mismo que el servidor o como es lo normal "en producción" tu aplicación que el servidor esté separado de los clientes; PHP no puede tomar un archivo así como así de un "cliente" .. para eso en HTML se implemetó el campo "FILE" en formularios HTML con sus restricciones, además que la "ruta en el cliente" es lo de menos, tu vas a gestionar tus archivos en el "servidor".

Un saludo,
mira lo que yo no quiero es darle la tarea al servidor... estoy haciendo un proyecto donde necesito que en mi cliente queden las imagenes pequeñas por lo que me sirve hacer 2 uploads uno de la imagen en grande y otro para la imagen pequeña, esta web solo la veran no mas alla de 7 personas... y que todas ellas seran administradores (estoy haciendo el codigo de carga de imagenes para la base de datos), por lo que no me importa que queden las imagenes, es mas, me sirve de respaldo ante cualquier problema...
En fin siguiendo tu consejo, aplique javascript, con una funcion mas que sencilla... para copiar la direccion de un FILE hay que hacer lo siguiente:

en el formulario que contiene el input FILE al cual nombraremos "imagen", se crea un input del tipo HIDDEN llamado "direccion"... y en boton de enviar del form (submit) se coloca lo siguiente... onClick="direccion.value = imagen.value"
algo asi:
Código PHP:
<input type="file" name="direccion" size="20"
<
input type="hidden" name="imagen">
<
input type="Submit" onClick="imagen.value = direccion.value" value="guardar imagen"
..... con esto se envia a la pagina PHP un string que tiene la siguiente caracteristica: C:\\xxxx\\xxx\\xxx.jpg, como se puede ver hay un problema con la ruta por la duplicidad de "\" ... pero esto es super facil de resolver:
Código PHP:
$direccion_file $_POST['imagen']; 
for (
$a 0$a strlen($direccion_file); $a ++){
if (
$direccion_file[$a] == "\\") {
$direccion_file[$a] = '';
$a += 2;    
}
}
echo 
$direccion_file
con esto se obtiene una direccion funcional.
c:\xxxx\xxx\xxx.jpg

bueno Gente ojalá que a alguien le sirva esto..

Saludos y gracias Cluster..
  #12 (permalink)  
Antiguo 02/10/2006, 15:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
estoy haciendo un proyecto donde necesito que en mi cliente queden las imagenes pequeñas por lo que me sirve hacer 2 uploads uno de la imagen en grande y otro para la imagen pequeña,
¿Quien dijo que había que hacer "dos uploads"? .. Yo siempre te he comentado que haces el "Upload" de la imagen a tamaño original y en el servidor es donde le pasas tu función que trabaja con GD (www.php.net/gd) para generar tu thumnail y dejarlo en el servidor (ya sea como archivo o la generas al vuelo cuando la necesites).

Cita:
..... con esto se envia a la pagina PHP un string que tiene la siguiente caracteristica: C:\\xxxx\\xxx\\xxx.jpg, como se puede ver hay un problema con la ruta por la duplicidad de "\" ... pero esto es super facil de resolver:
Esto se arregla simplemente con:

stripslashes()
http://www.php.net/manual/en/function.stripslashes.php

Cita:
con esto se obtiene una direccion funcional.
c:\xxxx\xxx\xxx.jpg
No entiendo para que necesitas dicho dato todavía en una aplicación web. Me gustaría verlo .. con que finalidad.

Por qué sinó el día que el "servidor y el cliente" no sean la misma máquina no te funcionará tu "filosofía" de registro de rutas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 12:22.