PHP - subir archivos al servidor

   
Vista:

subir archivos al servidor

Publicado por mario (33 intervenciones) el 16/06/2015 23:05:24
buenas, ante todo gracias por la ayuda...
mi problema es el siguiente:
tengo un codigo que agrega archivos al servidor, me funciona, pero solo puedo agregar archivos de imagenes como jpg, jpeg,gif, png hasta hay todo bien el problema es que solo me deja agregar archivos pdf, y necesito agregar archivos con extenciones doc, docx, xls, xlsx
este es el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
if( !isset($_FILES['archivo']) ){
  $mensaje = 'Tienes que elegir un archivo<br/>';
}else{
 
  $nombre = $_SESSION['MM_NumReq'].$_FILES['archivo']['name'];
  $nombre_tmp = $_FILES['archivo']['tmp_name'];
  $tipo = $_FILES['archivo']['type'];
  $tamano = $_FILES['archivo']['size'];
 
 
  $ext_permitidas = array('jpg','jpeg','gif','png','csv','xls','xlsx','pdf','doc','docx');
  $partes_nombre = explode('.', $nombre);
  $extension = end( $partes_nombre );
  $ext_correcta = in_array($extension, $ext_permitidas);
 
  $tipo_correcto = preg_match(
    '/^(image\/(pjpeg|jpeg|gif|png)|application\/(|x-|x-bz|x-gz)pdf|doc|docx|xls|xlsx|pdf)$/',
      $tipo);
 
 
  $limite = 50000 * 10024;
 
  if( $ext_correcta && $tipo_correcto && $tamano <= $limite ){
    if( $_FILES['archivo']['error'] > 0 ){
      $mensaje = 'Error: ' . $_FILES['archivo']['error'] . '<br/>';
    }else{
 
      if( file_exists( 'uploads/'.$nombre) ){
		  $mensaje = '<br/>El archivo: ' . $nombre . '<br/> ya existe';
      }else{
	  $Ubicacion="uploads/" . $nombre;
	  $insertSQL = sprintf("INSERT INTO documentos (NumRequisicion, Documentos) VALUES (%s, %s)",
							GetSQLValueString($_SESSION['MM_NumReq'], "text"),
							GetSQLValueString($Ubicacion, "text"));
 
	  mysql_select_db($database_SRE, $SRE);
	  $Result1 = mysql_query($insertSQL, $SRE) or die(mysql_error());
        move_uploaded_file($nombre_tmp,
          "uploads/" . $nombre);
 
        $mensaje= "<br/>Guardado en: " . "uploads/" . $nombre;
      }
    }
  }else{
    $mensaje = 'Archivo inválido';
  }
}
nota al final del codigo se agrega a una tabla de la base de datos la referencia al archivo guardado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

subir archivos al servidor

Publicado por xve (5513 intervenciones) el 17/06/2015 10:12:38
Hola Mario, creo que el problema lo tienes en el mime-type de los archivo de office... por ejemplo el excel puede ser del tipo:
application/vnd.ms-excel
application/msexcel
application/x-msexcel
application/x-ms-excel
application/x-excel
application/x-dos_ms_excel
application/xls
application/x-xls
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet


Fíjate que muchas de estos formatos no los tienes soportados en:
1
2
3
$tipo_correcto = preg_match(
    '/^(image\/(pjpeg|jpeg|gif|png)|application\/(|x-|x-bz|x-gz)pdf|doc|docx|xls|xlsx|pdf)$/',
      $tipo);

Si modificas el condicional:
1
if( $ext_correcta && $tipo_correcto && $tamano <= $limite ){
por:
1
if( $ext_correcta && $tamano <= $limite ){
debería de funcionar-te...

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

subir archivos al servidor

Publicado por mario (33 intervenciones) el 17/06/2015 15:03:13
ooohhhh!!! mil gracias me funcionó .....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar