Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Ali Baba en 1 Abril 2018, 17:24 pm



Título: ¿Cómo mostrar archivo en php con su link generado?
Publicado por: Ali Baba en 1 Abril 2018, 17:24 pm
Resulta que estoy intentando crear una web donde se suba una imagen al servidor y esta devuelva un link con la imagen. De cierta forma lo logro, solo que cuando le doy clic al link la imagen no se me ve porque le falta el formato, lo que pasa es que quiero que la imagen salga en base64, para lo cual también tengo el código ya escrito, aquí os dejo todo:

Código
  1. <!DOCTYPE html>
  2. <html lang="es" dir="ltr">
  3.  
  4.  <meta charset="utf-8">
  5.  <meta name="author" content="Diesan Romero">
  6.  <meta name="description" content="Sube tus imagenes de manera temporal">
  7.  <meta http-equiv="imagetoolbar" content="no">
  8.  <meta http-equiv="pragma" content="no-cache">
  9.  
  10.  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
  11.  <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet">
  12.  <link href="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.5.0/css/mdb.min.css" rel="stylesheet">
  13.  <link rel="stylesheet" href="src/styles.css">
  14.  <title>Imágenes Momentaneas</title>
  15. </head>
  16.  
  17. <body oncontextmenu="return false" ondragstart="return false" onselectstart="return false" onkeydown="return false">
  18.  
  19.  <div class="container-fluid">
  20.    <div class="row justify-content-center mt-5">
  21.      <h1><span>Imágenes Momentáneas</span></h1>
  22.    </div>
  23.    <div class="row justify-content-center mt-4">
  24.      <form action="index.php" method="post"  enctype="multipart/form-data">
  25.        <div class="form">
  26.          <h3 class="row justify-content-center mt-5">Seleccione el tiempo en minutos que estará su imagen en línea</h3>
  27.          <div class="row justify-content-center mt-1">
  28.            <div class="btn-group" role="group">
  29.              <button type="button" class="btn btn-warning">1</button>
  30.              <button type="button" class="btn btn-warning">5</button>
  31.              <button type="button" class="btn btn-warning">15</button>
  32.              <button type="button" class="btn btn-warning">30</button>
  33.              <button type="button" class="btn btn-warning">60</button>
  34.            </div>
  35.          </div>
  36.          <div class="row justify-content-center mt-5">
  37.            <input type="file" name="imagen" id="imagen" class="input-file">
  38.            <label for="imagen" class="btn btn-lg btn-outline-black js-labelFile">
  39.              <i class="icon fa fa-check"></i>
  40.              <span class="js-fileName">Elija la imagen a subir</span>
  41.            </label>
  42.            <input type="submit" class="btn btn-lg btn-red" value="Subir Imagen">
  43.          </div>
  44.        </div>
  45.      </form>
  46.    </div>
  47.  </div>
  48.  
  49.  
  50.  
  51.  <?php
  52.      if (!isset($_FILES['imagen']['tmp_name']) || !file_exists($_FILES['imagen']['tmp_name']) || !is_uploaded_file($_FILES['imagen']['tmp_name'])){
  53.  
  54.      }
  55.    else {
  56.  
  57.      $nombre = $_FILES['imagen']['name'];
  58.      $tipo = $_FILES['imagen']['type'];
  59.      $tamano = $_FILES['imagen']['size'];
  60.      $tmpext=explode(".", $nombre);
  61.      $extension = end($tmpext);
  62.      $generado = md5($nombre.rand()).'.'.$extension;
  63.      $nombre = substr($generado, 0,7);
  64.  
  65.      $carpetaImagenes = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'imagenes-momentaneas/imagenes';
  66.      if (!is_dir($carpetaImagenes)) {
  67.          mkdir($carpetaImagenes, 0775);
  68.      }
  69.      if (!is_writable($carpetaImagenes)) {
  70.          chmod($carpetaImagenes, 0775);
  71.      }
  72.  
  73.      //Crea la carpeta Uploads
  74.      $carpetaUploads = $carpetaImagenes.DIRECTORY_SEPARATOR.'uploads';
  75.      if (!is_dir($carpetaUploads)) {
  76.          mkdir($carpetaUploads, 0775);
  77.      }
  78.  
  79.      if (!is_writable($carpetaUploads)) {
  80.          chmod($carpetaUploads, 0775);
  81.      }
  82.  
  83.      if ($_FILES['imagen']['size'] != 0 && $_FILES['imagen']['type'] === 'image/jpeg' || $_FILES['imagen']['type'] === 'image/jpg' || $_FILES['imagen']['type'] === 'image/png' || $_FILES['imagen']['type'] === 'image/gif')
  84.      {
  85.        // Envia la imagen del directorio temporar al servidor
  86.        move_uploaded_file($_FILES['imagen']['tmp_name'], $carpetaUploads.DIRECTORY_SEPARATOR.$nombre);
  87.        // Path de donde va a estar la imagen ya subida
  88.        $path = $carpetaUploads.DIRECTORY_SEPARATOR.$nombre;
  89.        $enlace = 'http://localhost/imagenes/uploads/'.$nombre.;
  90.        //echo "<img src='data:image/jpg;base64,".base64_encode(file_get_contents($path))."' />";
  91.        echo "<div class='row justify-content-center mt-2'><div class='col-4'><div class='alert alert-success visible' role='alert'>La imagen ha sido subida correctamente. Acá está el enlace directo: <a href='{$enlace}'>{$enlace}</a></div></div></div>";
  92.        }
  93.    }
  94.  
  95.  ?>
  96.  
  97.  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  98.  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.13.0/umd/popper.min.js"></script>
  99.  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/js/bootstrap.min.js"></script>
  100.  <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.5.0/js/mdb.min.js"></script>
  101.  <script type="text/javascript" src="src/main.js"></script>
  102. </body>
  103.  
  104. </html>
  105.  

Alguna idea?