Foros del Web » Programando para Internet » PHP »

Problema Upload File

Estas en el tema de Problema Upload File en el foro de PHP en Foros del Web. ¡Hola a todos! Estoy teniendo un problema con la subida de ficheros PDF a mi sitio web. Actualmente tengo la web en 000webhost y esta ...
  #1 (permalink)  
Antiguo 04/01/2010, 18:05
felmoltor
Invitado
 
Mensajes: n/a
Puntos:
Problema Upload File

¡Hola a todos!

Estoy teniendo un problema con la subida de ficheros PDF a mi sitio web. Actualmente tengo la web en 000webhost y esta en pruebas.

La cuestión es que yo comparo el tipo de fichero que se sube, solo dejo subir word, odt y pdf. Solo tengo problemas de vez en cuando con los ficheros pdf:

Código PHP:
$type $_FILES ["translationFile1"] ["type"];
[...]
switch (
$type) {
    case 
'application/pdf':
    
//ok
    
[...]
    break;
    default:
    
//mal
    
$infoMsg "The file you tried to upload was not a ODT, PDF nor Word Document ($type)";
}
[...] 
Al subir un PDF me da el error e imprime el tipo de fichero que estoy intentando subir:
The file you tried to upload was not a ODT, PDF nor Word Document (\"application/pdf\")

Como veis, parece que me compara la cadena \"application/pdf\" con application/pdf y no me lo acepta como un documento PDF válido. ¿Estoy haciendo algo mal? ¿Os ha ocurrido anteriormente esto?

Muchas gracias.
  #2 (permalink)  
Antiguo 04/01/2010, 18:24
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Problema Upload File

<?

$prefix = substr(md5(uniqid(rand())),0,6); // Aqui crea un prefijo para identificar cada documento.
$name= $_FILES['nombre del campo file de su formulario']['name']; // Aqui recibimos el nombre del documento.
$ext=explode(".",$name); // hacemos un explode para sacar la extension.
$size = $_FILES['nombre del campo file de su formulario']['size']; // sabemos el tamaño del archivo.

/* Son 20000 byte si lo quieres llegar a kb hazlo asi if(($size/1024)<20) */
if($size<20000)
{

//Validamos la extension permitidas.
if(($ext[1]=="pdf")||($ext[1]=="doc")||($ext[1]=="gif"))//Aqui agrgas la extension que tu quieras.
{

// Definimos Directorio donde se guarda el archivo
$destiny = "files/".$prefix.$name; /*El prefijo va delante el nombre como identificador si quiere se lo quitas pero esto es para que no reescribas el documento cargado si le ponen el mismo nombre de uno existente. Si lo quieres sin prefix es asi: $destiny = "files/".$name; */

if(copy($_FILES['nombre del campo file de su formulario']['tmp_name'], $destiny))
{
echo "El documento se cargo con exito";
}
else
{
echo "Fallo la carga del documento";
}
}

}

?>

Haz los cambios de acuerdo a tu form y ya
  #3 (permalink)  
Antiguo 04/01/2010, 18:43
felmoltor
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema Upload File

Cita:
Iniciado por jgames88 Ver Mensaje
Tu codigo si es raro man te complicas mucho con los switch dejame darte uno mas facil ya va..
Quería simplificar el código para no escribir aquí un chorro de código. Los corchetes con los signos de puntuación significan que he resumido código, aquí está el código casi completo:

Código PHP:
                $name $_FILES ["translationFile1"] ["name"];
                
$type $_FILES ["translationFile1"] ["type"];
                
$size $_FILES ["translationFile1"] ["size"] / 1024;
                
$tmpFile $_FILES ["translationFile1"] ["tmp_name"];
                
$ext getExtension $name );
                
                
$query_uploadDir "";
                
                switch (
$type) {
                    case 
'application/pdf':
                        
//OK
                        
if ($ext != "pdf") {
                            
$infoMsg "C'è stato un problema nel caricamento del documento";
                        } else {
                            
$query_uploadDir "SELECT * FROM tDocSumary WHERE DocType = 'PDF'";
                        }
                        break;
                    case 
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' :
                        
//OK
                        
if ($ext != "docx") {
                            
$infoMsg "C'è stato un problema nel caricamento del documento";
                        } else {
                            
$query_uploadDir "SELECT * FROM tDocSumary WHERE DocType = 'DOCX'";
                        }
                        break;
                    case 
'application/msword' :
                        
//OK
                        
if ($ext != "doc") {
                            
$infoMsg "C'è stato un problema nel caricamento del documento";
                        } else {
                            
$query_uploadDir "SELECT * FROM tDocSumary WHERE DocType = 'DOC'";
                        }
                        break;
                    case 
'application/vnd.oasis.opendocument.text' :
                        
//OK
                        
if ($ext != "odt") {
                            
$infoMsg "C'è stato un problema nel caricamento del documento";
                        } else {
                            
$query_uploadDir "SELECT * FROM tDocSumary WHERE DocType = 'ODT'";
                        }
                        break;
                    default :
                        
//error
                        
$infoMsg "Il documento si è tentato di caricare non era un documento ODT, PDF, né Word"// ($type, $size kB)
                        
break;
                } 
  #4 (permalink)  
Antiguo 04/01/2010, 19:03
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Problema Upload File

mira solo haz este cambio en tu codigo y ya (Arriba me equivoque UTILIZA ESTE):

$name = $_FILES ["translationFile1"] ["name"];
$size = $_FILES ["translationFile1"] ["size"] / 1024;
$tmpFile = $_FILES ["translationFile1"] ["tmp_name"];

$type=explode(".",$name); // hacemos un explode para sacar la extension.

switch($type[1]) {
case 'pdf':
$query_uploadDir = "SELECT * FROM tDocSumary WHERE DocType = 'PDF'";
break;
case 'docx':
$query_uploadDir = "SELECT * FROM tDocSumary WHERE DocType = 'DOCX'";
break;
case 'doc':
$query_uploadDir = "SELECT * FROM tDocSumary WHERE DocType = 'DOC'";
break;
case 'odt':
$query_uploadDir = "SELECT * FROM tDocSumary WHERE DocType = 'ODT'";
break;
default:
//error
$infoMsg = "Il documento si è tentato di caricare non era un documento ODT, PDF, né Word"; // ($type, $size kB)
break;
}

te lo simplifique y acomode.
  #5 (permalink)  
Antiguo 05/01/2010, 05:24
felmoltor
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema Upload File

Cita:
Iniciado por jgames88 Ver Mensaje
mira solo haz este cambio en tu codigo y ya (Arriba me equivoque UTILIZA ESTE):

$name = $_FILES ["translationFile1"] ["name"];
$size = $_FILES ["translationFile1"] ["size"] / 1024;
$tmpFile = $_FILES ["translationFile1"] ["tmp_name"];

$type=explode(".",$name); // hacemos un explode para sacar la extension.

switch($type[1]) {
case 'pdf':
$query_uploadDir = "SELECT * FROM tDocSumary WHERE DocType = 'PDF'";
break;
case 'docx':
$query_uploadDir = "SELECT * FROM tDocSumary WHERE DocType = 'DOCX'";
break;
case 'doc':
$query_uploadDir = "SELECT * FROM tDocSumary WHERE DocType = 'DOC'";
break;
case 'odt':
$query_uploadDir = "SELECT * FROM tDocSumary WHERE DocType = 'ODT'";
break;
default:
//error
$infoMsg = "Il documento si è tentato di caricare non era un documento ODT, PDF, né Word"; // ($type, $size kB)
break;
}

te lo simplifique y acomode.
Gracias, pero olvidaros del código. Solo quería que me contarais si alguno ha tenido el problema de que se le compare con \"application/pdf\" (con las barras de escape antes de las comillas) en vez de con application/pdf nis comillas ni nada. Ese es el problema que estoy teniendo.

Gracias de nuevo.
  #6 (permalink)  
Antiguo 05/01/2010, 08:36
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Problema Upload File

Por qué tienes espacion aqui $type = $_FILES ["translationFile1"] ["type"];? eso va pegado asi $type = $_FILES["translationFile1"]["type"]; todo pegado acomodalo y talvez puede ser eso e iguyal todos los demas.
  #7 (permalink)  
Antiguo 05/01/2010, 08:37
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: Problema Upload File

y si te quieres quitar ese problema utiliza el mismo tuyo pero como lo acomode yo y jamas t arrojara ese error ademas que te acorta el codigo..

Etiquetas: file, upload
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:10.