subir nombre move_uploaded_file imagen guardar ejemplo cambiar archivos php file-upload

php - move_uploaded_file - Cómo subir y guardar archivos con el nombre deseado



move_uploaded_file cambiar nombre (6)

Estoy usando este código para subir archivos (imágenes a una carpeta)

<form action='''' method=''POST'' enctype=''multipart/form-data''> <input type=''file'' name=''userFile''><br> <input type=''submit'' name=''upload_btn'' value=''upload''> </form> <?php $target_Path = "images/"; $target_Path = $target_Path.basename( $_FILES[''userFile''][''name''] ); move_uploaded_file( $_FILES[''userFile''][''tmp_name''], $target_Path ); ?>

cuando el archivo (imagen) se guarda en la ruta especificada ... ¿QUÉ pasa si quiero guardar el archivo con el nombre deseado ...?

He intentado reemplazar ESTE

$target_Path = $target_Path.basename( $_FILES[''userFile''][''name''] );

CON ESTE

$target_Path = $target_Path.basename( "myFile.png" );

PERO no está funcionando


AQUÍ ESTÁ EL CÓDIGO EN PHP PARA CARGAR LA IMAGEN EN LA BASE DE DATOS, MOSTRARLA Y TAMBIÉN GUARDARLA EN TU CARPETA LOCAL

  1. EN PRIMER CÓDIGO HTML PARA LA FORMA:

    <div class="upload"> <form method="POST" enctype="multipart/form-data" id="imageform"> <br> <input type="file" name="image" id="photoimg" > <br><br> <input type="submit" name="submit" value="UPLOAD"> </form> </div>

  2. AQUÍ ESTÁ EL CÓDIGO PHP ENTERO:

crear base de datos y tabla como lo desee. (solo se requieren 2 campos) En la tabla, id(INT) 255 primary key AUTO INCREMENT and your image row(anyname) (MEDIUMBLOB)

<?php if(isset($_POST[''submit''])){ if(@getimagesize($_FILES[''image''][''tmp_name'']) == FALSE){ echo "<span class=''image_select''>please select an image</span>"; } else{ $image = addslashes($_FILES[''image''][''tmp_name'']); $name = addslashes($_FILES[''image''][''name'']); $image = file_get_contents($image); $image = base64_encode($image); saveimage($name,$image); $uploaddir = ''profile/''; //this is your local directory $uploadfile = $uploaddir . basename($_FILES[''image''][''name'']); echo "<p>"; if (move_uploaded_file($_FILES[''image''][''tmp_name''], $uploadfile)) {// file uploaded and moved} else { //uploaded but not moved} echo "</p>"; } } displayimage(); function saveimage($name,$image) { $con = mysql_connect("localhost","root","your database password"); mysql_select_db("your database",$con); $qry = "UPDATE your_table SET your_row_name=''$image''"; $result = @mysql_query($qry,$con); if($result) { echo "<span class=''uploaded''>IMAGE UPLOADED</span>"; } else { echo "<span class=''upload_failed''>IMAGE NOT UPLOADED</span>"; } } function displayimage() { $con = mysql_connect("localhost","root","your_password"); mysql_select_db("your_database",$con); $qry = "select * from your_table"; $result = mysql_query($qry,$con); while($row = mysql_fetch_array($result)) { echo ''<img class="image" src="data:image;base64,''.$row[1].''">''; } mysql_close($con); } ?>


Esto funcionaría muy bien: puede usar HTML5 para permitir que solo se carguen los archivos de imagen. Este es el código para uploader.htm -

<html> <head> <script> function validateForm(){ var image = document.getElementById("image").value; var name = document.getElementById("name").value; if (image =='''') { return false; } if(name =='''') { return false; } else { return true; } return false; } </script> </head> <body> <form method="post" action="upload.php" enctype="multipart/form-data"> <input type="text" name="ext" size="30"/> <input type="text" name="name" id="name" size="30"/> <input type="file" accept="image/*" name="image" id="image" /> <input type="submit" value=''Save'' onclick="return validateForm()"/> </form> </body> </html>

Ahora el código para upload.php -

<?php $name = $_POST[''name'']; $ext = $_POST[''ext'']; if (isset($_FILES[''image''][''name''])) { $saveto = "$name.$ext"; move_uploaded_file($_FILES[''image''][''tmp_name''], $saveto); $typeok = TRUE; switch($_FILES[''image''][''type'']) { case "image/gif": $src = imagecreatefromgif($saveto); break; case "image/jpeg": // Both regular and progressive jpegs case "image/pjpeg": $src = imagecreatefromjpeg($saveto); break; case "image/png": $src = imagecreatefrompng($saveto); break; default: $typeok = FALSE; break; } if ($typeok) { list($w, $h) = getimagesize($saveto); $max = 100; $tw = $w; $th = $h; if ($w > $h && $max < $w) { $th = $max / $w * $h; $tw = $max; } elseif ($h > $w && $max < $h) { $tw = $max / $h * $w; $th = $max; } elseif ($max < $w) { $tw = $th = $max; } $tmp = imagecreatetruecolor($tw, $th); imagecopyresampled($tmp, $src, 0, 0, 0, 0, $tw, $th, $w, $h); imageconvolution($tmp, array( // Sharpen image array(−1, −1, −1), array(−1, 16, −1), array(−1, −1, −1) ), 8, 0); imagejpeg($tmp, $saveto); imagedestroy($tmp); imagedestroy($src); } } ?>



Puedes probar esto,

$info = pathinfo($_FILES[''userFile''][''name'']); $ext = $info[''extension'']; // get the extension of the file $newname = "newname.".$ext; $target = ''images/''.$newname; move_uploaded_file( $_FILES[''userFile''][''tmp_name''], $target);


usar esto para la ruta de destino para cargar

<?php $file_name = $_FILES["csvFile"]["name"]; $target_path = $dir = plugin_dir_path( __FILE__ )."//upload//". $file_name; echo $target_path; move_uploaded_file($_FILES["csvFile"]["tmp_name"],$target_path. $file_name); ?>


Configurar el archivo "php.ini"

Primero, asegúrese de que PHP esté configurado para permitir la carga de archivos. En su archivo "php.ini", busque la directiva file_uploads y configúrela como Activada:

file_uploads = On

Crear el formulario HTML

A continuación, cree un formulario HTML que permita a los usuarios elegir el archivo de imagen que desean cargar:

<!DOCTYPE html> <html> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> Select image to upload: <input type="file" name="fileToUpload" id="fileToUpload"> <input type="submit" value="Upload Image" name="submit"> </form> </body> </html>

Algunas reglas a seguir para el formulario HTML anterior: Asegúrese de que el formulario use method = "post". El formulario también necesita el siguiente atributo: enctype = "multipart / form-data". Especifica qué tipo de contenido usar al enviar el formulario. Sin los requisitos anteriores, la carga del archivo no funcionará. Otras cosas para notar: el atributo type = "file" de la etiqueta muestra el campo de entrada como un control de selección de archivo, con un botón "Examinar" al lado del control de entrada. El formulario anterior envía datos a un archivo llamado "upload.php" ", que crearemos a continuación.

Crear el script PHP de carga de archivo

El archivo "upload.php" contiene el código para cargar un archivo:

<?php $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "File is not an image."; $uploadOk = 0; } } ?>