Como subir arquivos via php

  • Autor Autor ernestobolanos2012
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
E

ernestobolanos2012

Gamma
No recomendado
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Alguien me puede ayudar y decirme como subir archivos desde una interfaz en php a mysql?
Gracias de antemano.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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 edição:
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.
 
Voltar
Topo