sto cercando di caricare l'immagine, ma voglio che se l'immagine esiste già, ho bisogno di rinominare il file. Il problema nel mio codice si presenta quando provo a caricare l'immagine dopo aver rinominato il file. la parte del codice in cui sono affrontato il problema è. dopo la ridenominazione se mi associo il nome del file viene cambiato, ma dopo che io non sono in grado di caricare l'immagine sul serverRinomina immagine durante il caricamento sul server
if(file_exists($target_file))
{
$new_filename = uniqid() . '.' . $fileData['imageFileType'];
rename($target_file, $new_filename);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
$name=basename($_FILES["fileToUpload"]["name"]);
echo $name;
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
else
{
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
$name=basename($_FILES["fileToUpload"]["name"]);
echo $name;
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
l'intero codice che ho per il caricamento dell'immagine è
<?php
require 'connection.php';
$target_dir = "catpic/";
$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;
}
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000)
{
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif")
{
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0)
{
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
}
else
{
if(file_exists($target_file))
{
$new_filename = uniqid() . '.' . $fileData['imageFileType'];
rename($target_file, $new_filename);
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
$name=basename($_FILES["fileToUpload"]["name"]);
echo $name;
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
else
{
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
{
$name=basename($_FILES["fileToUpload"]["name"]);
echo $name;
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
}
?>
puoi spiegare un po 'di più l'errore? – Zgr3doo
@ Zgr3doo l'errore è che la mia immagine non viene caricata dopo la parte di ridenominazione. se carico l'immagine per la prima volta va bene, ma se carico la stessa immagine la prossima volta non viene caricata anche se il suo nome viene cambiato – roy
Ti manca il percorso nel tuo $ new_filename - potrebbe anche essere una buona idea usare il modo che viene comunemente utilizzato negli script di caricamento dei file e assegna un hash casuale come nome ai file caricati e salva questo hash nel database insieme all'ID del file. – Zgr3doo