Como subir archivos desde php

  • Autor Autor ernestobolanos2012
  • Fecha de inicio Fecha de inicio
E

ernestobolanos2012

No recomendado
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Alguien me puede ayudar y decirme como subir archivos desde una interfaz en php a mysql?
Gracias de antemano.
 
Entré pensando que era un tutorial XD
 
No puedes subir archivos "de php a mysql", a no ser que quieras guardar los archivos en la base de datos codificados en base64, que no creo que sea lo que quieras.

Por lo general para las subidas de archivos se usa una carpeta en el disco duro en la cual el usuario que arranca el servidor web (www-data suele ser, siempre que el servidor corra bajo unix) tiene permisos de escritura.


Para subir un archivo creando un formulario en HTML con la codificación mulipart/form-data. Algo así:

HTML:
<form action="file-handler-script.php" method="POST" enctype="multipart/form-data">
         <input type="file" name="miarchivo" />
         <input type="submit"/>
</form>

Donde pone file-handler-script.php debe ir la ruta relativa desde la raiz web hacia el script php que procesará el archivo, que debe contener algo parecido a esto:

PHP:
<?php
   if(isset($_FILES['miarchivo'])){
      $errors= array();
      $file_name = $_FILES['miarchivo']['name'];
      $file_size =$_FILES['miarchivo']['size'];
      $file_tmp =$_FILES['miarchivo']['tmp_name'];
      $file_type=$_FILES['miarchivo']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['miarchivo']['name'])));
      
      $extensions= array("jpeg","jpg","png");
      
      if(in_array($file_ext,$extensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }
      
      if($file_size > 2097152){
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"images/uploaded".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>

En este caso el script que procesa comprueba que la extensión sea jpeg, jpg o png y el tamaño menor a 2Mb, si es así lo guarda a la carpeta images/uploaded en el servidor.
 
Última edición:
Me parece que estas buscando subir archivos con php y guardar la ruta/nombre del archivo en mysql
HTML:
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE debe preceder al campo de entrada del fichero -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- El nombre del elemento de entrada determina el nombre en el array $_FILES -->
    Enviar este fichero: <input name="fichero_usuario" type="file" />
    <input type="submit" value="Enviar fichero" /> </form>

PHP:
<?php
$dir_subida = '/var/www/uploads/';
$fichero_subido = $dir_subida . basename($_FILES['fichero_usuario']['name']);
if (move_uploaded_file($_FILES['fichero_usuario']['tmp_name'], $fichero_subido))
    echo "El fichero es válido y se subió con éxito, puedes guarda su nombre o la ruta del archivo.";
?>

PHP: Subida con el metodo POST - Manual

Suerte 🙂
 
Amigo
En mysql sólo vas a poder guardar el nombre del archivo, y algún otro dato que te interese (por ejemplo el tipo).

Con PHP podes subir el archivo al servidor o guardarlo en alguna carpeta.

Luego para mostrarlo, usas los datos guardados en mysql (ruta donde lo guardaste )

Hay muchos tutoriales por ahí.

Saludos !!
 
eso mismo pensé yo, que querías era guardar la ruta no el archivo completo 😱josabiertos: debes explicarte mejor
 
Si puedes buscar en internet
 
No puedes subir archivos "de php a mysql", a no ser que quieras guardar los archivos en la base de datos codificados en base64, que no creo que sea lo que quieras.

Sí se puede, es un campo tipo BLOB. Ahora poder hacer y deber hacer son dos cosas distintas.
 
Atrás
Arriba