Que tal amigos:
Tengo un pequeño administrador de Imagenes.
donde subo imagenes, puedo eliminar del listado donde despliego las imagenes al presionar en un input radio, y tambien logro intercambiar imagenes......pero al intercambiar la imagen puede que no conserve la extension y la cambie.
ejemplo. imagen.jp intercambiar por imagen.png
mi script dejaria las 2 como jpg. Y lo que quiero que al intercambiarlas ambas conserven su extension.
admin_imagen.php
Código PHP:
require("upload.php");
$status = "";
if ($_POST["action"] == "upload") {
$fupload = new Upload();
$fupload->setPath("../banner");
$fupload->setFile("archivo");
$fupload->isImage(true);
$fupload->save();
$status = $fupload->message;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="../css/hojaEstilos.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="413" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="413" height="40" ><h1 align="center">Administrador de Banners</h1> </td>
</tr>
<tr>
<td class="text">Banner Actual:</td>
</tr>
<tr>
<td><img src="../banner/banner.jpg" width='500' height='80' /> </td>
</tr>
<tr>
<td class="text">Por favor seleccione el archivo a subir:</td>
</tr>
<tr>
<!-- Formulario para subir banners -->
<form action="admin_imagen.php" method="post" enctype="multipart/form-data">
<td class="text">
<input name="archivo" type="file" class="casilla" id="archivo" size="35" />
<input name="enviar" type="submit" class="boton" id="enviar" value="Subir Img" />
<input name="action" type="hidden" value="upload" />
</td>
</form><!-- FIN formulario -->
</tr>
<tr>
<td class="text" style="color:#990000"><?php echo $status; ?></td>
</tr>
<tr>
<td height="30" class="subtitulo">Listado de Archivos Subidos </td>
</tr>
<tr>
<td class="infsub">
<?php
echo "<form action='' method='post'>";
if ($gestor = opendir('../banner'))
{
while (false !== ($arch = readdir($gestor)))
{
$i=0;
if ($arch != "." && $arch != ".." && $arch != "banner.jpg")
{
echo "Eliminar <input type=radio name='delete".$i."' value='../banner/".$arch."'>
Update Banner <input type=radio name='update".$i."' value='../banner/".$arch."'>
<img src='../banner/".$arch."' width='500' height='80'/>"."<br />";
if( $_POST["delete".$i] == "../banner/".$arch )
{
echo "<p> NOTA: Eliminando Imagen</p> ";
unlink($_POST["delete".$i]);
header("location:admin_banners.php");
}//fin if
if( $_POST["update".$i] == "../banner/".$arch )
{
echo "<p> NOTA: Cambiando a Banner Actual</p> ";
copy($_POST['update'.$i],'../banner/bannerxxxxx.jpg');
rename('../banner/banner.jpg',$_POST['update'.$i]);
rename('../banner/bannerxxxxx.jpg','../banner/banner.jpg');
header("location:admin_banners.php");
}
}//fin if
$i++;
}//fin while
echo "<br />";
echo "<input type='submit' value='Eliminar' />";
echo "<input type='submit' value='Update' />";
closedir($gestor);
}//fin if mayor
echo "</form>";
?>
<p align="center"> <a href="index.php"><img src="../images/volver.gif" > </a></p>
</td>
</tr>
</table>
</body>
</html>
utilizo upload.php que pille en la net
Código PHP:
<?php
class Upload {
var $maxsize = 0;
var $message = "";
var $newfile = "";
var $newpath = "";
var $filesize = 0;
var $filetype = "";
var $filename = "";
var $filetemp;
var $fileexte;
var $allowed;
var $blocked;
var $isimage;
var $isupload;
function Upload() {
$this->allowed = array("image/bmp","image/gif","image/jpeg","image/pjpeg","image/png","image/x-png");//archivos permitidos
$this->blocked = array("php","phtml","php3","php4","js","shtml","pl","py");//archivos NO permitidos
$this->message = "";
$this->isupload = false;
}
function setFile($field) {
$this->filesize = $_FILES[$field]['size'];//tamano imagen
$this->filename = $_FILES[$field]['name'];//nombre imagen
$this->filetemp = $_FILES[$field]['tmp_name'];
$this->filetype = mime_content_type($this->filetemp);
$this->fileexte = substr($this->filename, strrpos($this->filename, '.')+1);
$this->newfile = substr(md5(uniqid(rand())),0,8).".".$this->fileexte;
}
function setPath($value) {
$this->newpath = $value;
}
function setMaxSize($value) {
$this->maxsize = $value;
}
function isImage($value) {
$this->isimage = $value;
}
function save() {
if (is_uploaded_file($this->filetemp)) {
// check if file valid
if ($this->filename == "") {
$this->message = "error";
$this->isupload = false;
return false;
}
// check max size
if ($this->maxsize != 0) {
if ($this->filesize > $this->maxsize*1024) {
$this->message = "Large File Size";
$this->isupload = false;
return false;
}
}
// check if image
if ($this->isimage) {
// check dimensions
if (!getimagesize($this->filetemp)) {
$this->message = "Tipo de archivo Invalido";
$this->isupload = false;
return false;
}
// check content type
if (!in_array($this->filetype, $this->allowed)) {
$this->message = "Tipo de archivo Invalido";
$this->isupload = false;
return false;
}
}
//comprobar si el archivo esta permitido
if (in_array($this->fileexte, $this->blocked)) {
$this->message = "No permitido- ".$this->fileexte;
$this->isupload = false;
return false;
}
if (move_uploaded_file($this->filetemp, $this->newpath."/".$this->newfile)) {
$this->message = "Imagen subida con exito!";
$this->isupload = true;
return true;
} else {
$this->message = "Imagen no fue subida..intentente nuevamente";
$this->isupload = false;
return false;
}
} else {
$this->message = "Imagen no fue subida..intentente nuevamente";
$this->isupload = false;
return false;
}
}
}
?>
Quiero que me conservee las extensiones....el resto funciona.