Foros del Web » Programando para Internet » PHP »

Problemas al subir un archivo en MAC

Estas en el tema de Problemas al subir un archivo en MAC en el foro de PHP en Foros del Web. Saludos a todos. Tengo un problema al subir archivos en un mac, lo que sucede es que me elimina las extenciones, por ejemplo quiero subir ...
  #1 (permalink)  
Antiguo 19/12/2005, 15:19
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
Problemas al subir un archivo en MAC

Saludos a todos.

Tengo un problema al subir archivos en un mac, lo que sucede es que me elimina las extenciones, por ejemplo quiero subir una imagen .fh11 (freehand) por me dio del formulario con un input type=file, lo sube y todo pero me lo sube sin extencion, me dicen que se debe al SO, o quiza sera del upload en php, aunke okupo la simple funcion move_uploaded_file, pero como me sube los archivos no se si sera eso..

ojala alguien sepa y me reponda porfa,

saludos.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #2 (permalink)  
Antiguo 20/12/2005, 05:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Indica el código que usas .. tal vez en ese simple uso de dicha función ahí tengas el problema por error u omisión de algo.

También recuerda que si usas $_FILES para tomar el archivo que sube por médio de PHP .. puedes hacer:

Código PHP:
echo "<pre>";
print_r($_FILES);
echo 
"</pre>"
Y así verificar concretamente que contiene (información) sobre el archivo que subes y detecta PHP ..

Ahora . .también sería recomendable que concretases "donde no ves esa extensión" .. o como pretendes ver esa extensión. No sea que estás viendo esos archivos desde el Servidor o cliente que no permita ver extensiones directamente (como hace windows si no le indicas expresamente que quieres ver las extensiones de los archivos).

Un saludo,
  #3 (permalink)  
Antiguo 20/12/2005, 08:35
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
Cluster gracias por contestar.

Pero el codigo PHP esta bien, si yo subo un archivo al servidor desde mi pc (windows) los sube bien, con la extencion y todo. Pero al momento de subir los archivos desde un mac, esta el problema, los sube sin extencion, solo el nombre y al hacer el print_r($_FILES) aparecen los archivos pero tambien sin la extencion.

No se si se les ocurre alguna solucion o algo que pueda hacer, porque simplemente en un mac no funciona. incluso cuando cargo el archivo en el formulario (<input type=file>) ya me aparece sin extencion.

sinceramente no se que hacer.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #4 (permalink)  
Antiguo 20/12/2005, 08:36
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
a todo esto los archivos que se suben son con extenciones .fh11, .fh10, .fh9 y .ai, es decir se suben imagenes Freehand y Adobe Illustrator.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #5 (permalink)  
Antiguo 20/12/2005, 09:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Realmente no soy ususario de Mac y menos a ese nivel .. tal vez intervenga el navegador que usas en Mac y como este interprete el tag HTML de "file" .. o incluso configuración de ese navegador para Mac? .. Intenta consultar en foros expecializados de Mac.

Lo que corresponde a PHP, como dices .. ya hace su trabajo y has comprobado que "no le llega" correctamente la extensión mirando sobre $_FILES directamente.

Un saludo,
  #6 (permalink)  
Antiguo 20/12/2005, 09:34
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
Gracias Cluster.

Por mientras me resigne, y lo que hice fue poner un campo al costado del campo "file" en donde escriban manualmente la extencion que sea, asi cuando subo la imagen con move_uploaded_file, le agrego la extencion.

Una solucion rapida, desesperada y muy mala a mi gusto, pero mientras no se que mas hacer.

Saludos y ojalá algun otro user sepa que pueda ser.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #7 (permalink)  
Antiguo 20/12/2005, 09:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. como es eso de que $_FILES['archivo']['name'] por ejemplo no te muestre la extensión del archivo pero si tu compones algo tipo:

move_uploaded_file($_FILES['archivo']['tmp_name'],$_FILES['archivo']['name']."fh11");

el archivo lo mueve correctamente?

Podrías indicar el código que usas? .. que S.O. usas en tu servidor?

Un saludo,
  #8 (permalink)  
Antiguo 20/12/2005, 10:03
cao
 
Fecha de Ingreso: septiembre-2003
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 20 años, 7 meses
Puntos: 0
Creo que me iria por el OS, la verdad hace años tuve el mismo problema con una imac, independientemente de tener instalado el php, cuando diseñaba en mac, al guardar archivos de freehand, este los guardaba sin extensión, sin embargo, reconocia el tipo de archivo. Al trabajar con windows tenia que renombrarlo agregandole la extension.fh11 ...

Espero que esta liga aclare tus dudas, habla algo sobre lo que tu mencionas:

http://cit.ucsf.edu/webct/viewfileextensions.php
__________________
C A O
  #9 (permalink)  
Antiguo 20/12/2005, 10:08
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
Mensaje

a ver, el formulario donde subo la imagen es este, (el pedazo donde sube nomas, ya que el form tiene como 100 campos mas)

Código HTML:
<INPUT NAME="init_version[]" TYPE="file" CLASS="InputTextNormal" ID="id0" SIZE="20" onchange="ext_file(this.form,this.id)"> 
<input type="text" name="init_version_ext[]" class="InputTextNormal" id="id0_ext" size="3"> 
si te fijas el primero es para subir la imagen y el segundo es la extension respective (lo que hice ahora ultimo como solucion desesparada).

bueno este mismo campo se va repitiendo segun los archivos que suban (por algo el nombre es array).

y el codigo donde subo el archivo, es.

Código PHP:
$tmp_file    $_FILES['init_version']['tmp_name'];
$file_name    $_FILES['init_version']['name'];
$file_type    $_FILES['init_version']['type'];
$file_size    $_FILES['init_version']['size'];
        
for (
$i=0$i count($tmp_file); $i++) {
    
// Mover archivo.
    
if (move_uploaded_file($tmp_file[$i], $FilesFolder.$file_name[$i].$_POST['init_version_ext'][$i])) {

if (
file_exists($FilesFolder.$file_name[$i].$_POST['init_version_ext'][$i])) {
    
$msg .= "- Archivo '".$file_name[$i]."' enviado.<BR />\n";
    
$arr_archivos[] = $FilesFolder.$file_name[$i].$_POST['init_version_ext'][$i];
        }
    }

esto fue lo que hice fijate que en la funcion move_uploaded_file le tube que agregar la extencion, asi me sube los archivos "con" extencion, de lo contrario solo me sube la imagen pero sin extencion.


un ejemplo

subi esta imagen 05FNOSVRJWI04.fh11.

subiendola con windows, me la sube asi: 05FNOSVRJWI04.fh11
subiendola con mac, me la sube asi: 05FNOSVRJWI04

eso me sucede.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #10 (permalink)  
Antiguo 20/12/2005, 11:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, .. revisa el comentario de cao.

Un saludo,
  #11 (permalink)  
Antiguo 20/12/2005, 11:14
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
Si lei lo que dice cao, pero no es ahi el problema si la extencion siempre va, solo que cuando se sube al servidor se pierde. y no es porke el mac este configurado para que no muestre las extenciones.

Al subir lo deja como un archivo con nombre sin extension, incluso al hacer click en el archivo no se reconoce ni en un mac ni en windows, pues obvio esto ya que no tiene extension.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #12 (permalink)  
Antiguo 20/12/2005, 11:24
cao
 
Fecha de Ingreso: septiembre-2003
Ubicación: Monterrey
Mensajes: 36
Antigüedad: 20 años, 7 meses
Puntos: 0
Estuve checando php.net pero no se si Cluster nos pueda ayudar a aclarar esta duda, especialmente con el comentario que hace un usuario en php.net:

http://php.mirror.ncsu.edu/manual/en...load.php#41615

Donde menciona un pequeño error al momento de subir archivos via mac


IE on the Mac is a bit troublesome. If you are uploading a file with an unknown file suffix, IE uploads the file with a mime type of "application/x-macbinary". The resulting file includes the resource fork wrapped around the file. Not terribly useful.

The following code assumes that the mime type is in $type, and that you have loaded the file's contents into $content. If the file is in MacBinary format, it delves into the resource fork header, gets the length of the data fork (bytes 83-86) and uses that to get rid of the resource fork.

(There is probably a better way to do it, but this solved my problem):

<?php
if ($type == 'application/x-macbinary') {
if (strlen($content) < 128) die('File too small');
$length = 0;
for ($i=83; $i<=86; $i++) {
$length = ($length * 256) + ord(substr($content,$i,1));
}
$content = substr($content,128,$length);
}
?>
__________________
C A O
  #13 (permalink)  
Antiguo 20/12/2005, 11:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm Lo mejor es que lo pruebe Quest y nos comente (ya comentaba que no tengo experiencia ni un Mac cerca para hacer ese tipo de pruebas).

En tal caso .. de la prueba anterior sobre el "print_r($_FILES)" .. que "type" marca PHP cuando subes un archivo vía PHP desde un Mac?

Un saludo,
  #14 (permalink)  
Antiguo 20/12/2005, 13:05
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
A mi no me funcionaba el upload en safari ni en sistema nueve ni en jaguar, pero sí en panther (en cualquier navegador) En sistema nueve y jaguar en explorer sí me funcionaba correctamente.
  #15 (permalink)  
Antiguo 20/12/2005, 13:54
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
TYPE: application/x-macbinary

eso me dice cuando suben una imagen freehand desde el mac.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #16 (permalink)  
Antiguo 20/12/2005, 14:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm Con eso vamos mal entonces. Por qué así no vas a poder registrar que tipo de archivo realmente subió .. ni para aplicar una posible validación por tipo de archivo ni para ajustar unas cabeceras HTTP para iniciar una descarga por ejemplo ...

Un saludo,
  #17 (permalink)  
Antiguo 20/12/2005, 14:16
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
no se puede hacer nada con ese type... hohoho, ya no se ke mas hacer.

quiza sea alguna configuracion del mac, pero imaginate que este sistema se ocupa en una imprenta, la cual los clientes via web por medio de este form envian los archivos, ahora toda la imprenta ocupa mac y todos los clientes igual, imaginate cambiar la conf a todos...

Por eso me voy de parte de php si se puee hacer algo, pero al parecer estoy amarrado en posibilidades, ya llevo tres dias buscando info y hoy quize recurrir a ustedes.

En fin seguire leyendo y buscando mas.


Gracias a todos.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #18 (permalink)  
Antiguo 20/12/2005, 14:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El amigo Panino5001 hizo sus própias baterias de test ... no sé tu en cuantos navegadores sobre Mac probastes .. pero si hay "algún" navegador que entrega esos datos de tal forma (correcta) y otro que no .. ahí realmente ya no sé que decirte, pero parece ya que PHP "no tiene la culpa" .. otra cosa es que puedas intentar tratar el tema de alguna forma identificando el problema.

Por ejemplo pasa cuando quieres forzar la descarga .. no todos los navegadores o gestores de descargas entienden de la misma forma las mismas cabeceras HTTP (ni entre versiones de un mismo tipo de navegador se comporta igual .. ) Con "PHP" en eses casos se "averigua" que "cliente" se tiene conectado y en función de eso así se intentan enviar las cabeceras HTTP más adecuadas para que "lo entienda" el navegador de turno.

Tu caso es más complicado .. por qué el archivo ya llega a PHP "mal". Cualquier avance que tengas .. no dudes en compartilo a ver si podemos crea alguna "FAQ" o similar para que no se pierda.

Un saludo,
  #19 (permalink)  
Antiguo 20/12/2005, 19:30
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
ok Cluster, cualquier avanze o solucion que encuentre no dudare en postearla.

Y hice los test en una Mac OS X Tiger, en el brow FireFox, IExplorer y en Safari, y paso lo mismo..
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
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 10:57.