Comunidad de diseño web y desarrollo en internet online

ayuda upload en php

Citar            
MensajeEscrito el 26 May 2008 06:48 am
Bien amigos necesito de su ayuda.. tengo el siguiente problema, requiero que suban imagenes a mi pagina web, las extensiones "GIF","PNG" Y "JPEG", es decir restringirlo a eso nada mas, para que no suban ".exe", ".html" , ".php" etc.. solo imaganes, ademas redimensionarlas o mas bien el peso maximo a 100 kb, y que se renombren segun, el numero de fotos que ya hayan, es decir.. si la ultima foto fue 10, la siguiente, 11 y la siguiente, 12 etc.. el codigo que uso es este..
"<? include("numfoto.php")?>
<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];

if ($archivo != "") {
// guardamos el archivo a la carpeta files
$destino = "Ruta/".$cuenta.".jpg";
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>sube tu foto</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="413" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="413" height="40" class="titulo">Sube tu foto</td>
</tr>
<tr>
<td class="text">Por favor seleccione el archivo a subir:</td>
</tr>
<tr>
<form action="upload.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="Upload File" />
<input name="action" type="hidden" value="upload" /> </td>
</form>
</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
if ($gestor = opendir('Ruta')) {
echo "<ul>";
while (false !== ($arch = readdir($gestor))) {
if ($arch != "." && $arch != "..") {
echo "<li><a href=\"Ruta/".$arch."\" class=\"linkli\">".$arch."</a></li>\n";
}
}
closedir($gestor);
echo "</ul>";
}
?> </td>
</tr>
</table>
</body>
</html>"
Ahora.. uso una especie de contador en php, pero el problema, es que cada vez que se entra a la pagina avanza +1 es como un contador de visitas, y si en esa visita no subi ninguna foto, aun asi avanza,, y ese espacio queda vacio, es decir que si subi la ultima en 12, y entro, pero no subo la foto el contador es en 13, y si depues subo alguna foto, seria 14, pero el 13 esta vacio.. y no quiero eso.. aquien me pueda contestar muchas gracias.. y una cosa mas si ven los administradores, tengo problemas.. para el login, me logeo y cuando publico me manda logearme otra vez.. y asi cada vez.. :S que podria estar pasando? uso el IE7 y el Mozilla

Por No Existe

41 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 May 2008 10:02 am
La extensión del lado del cliente la puedes validar con Javascript, el contador tienes que determinar si es para un cliente en particular o genérico, si es para un cliente en particular tienes que guardarlo en algún lado y luego recuperarlo cuando se logea, sino está bien, pero increméntalo en el archivo que recibe el upload, no en otro lado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 May 2008 11:42 pm
Oye.. eso habia pensado. incrementar.. el contador. despues del post.. pero, cuando le puse
<? include numfoto.php> despues que posteean... no.. me lo agarro :S.. la verdad.. nos por que.. pero si me pudieras. dar un ejemplo..gracias.. embase.. al codigo que ya tengo.. y si sabes.. algo de restringir.. los formatos. y el peso. de las imagenes. gracias :D

Por No Existe

41 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 May 2008 09:31 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 May 2008 01:11 pm

solisarg escribió:

La extensión del lado del cliente la puedes validar con Javascript


o la puedes validar usando

Código :

$tipo = $_FILES["archivo"]['type'];
if($tipo=='jpg'||$tipo=='gif'||$tipo=='png') {
////  sube el archivo..................
}

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 28 May 2008 04:21 pm

jpcw escribió:

solisarg escribió:

La extensión del lado del cliente la puedes validar con Javascript


o la puedes validar usando

Código :

$tipo = $_FILES["archivo"]['type'];
if($tipo=='jpg'||$tipo=='gif'||$tipo=='png') {
////  sube el archivo..................
}


En mi experiencia, el tipo de la imagen será image/jpeg , image/gif o image/png , por lo que entiendo que la comparación fallaría. Es mejor hacer una búsqueda dentro de la cadena como

Código :

$tipo = $_FILES["archivo"]['type'];
if( strpos($tipo, "jpeg") || strpos($tipo, "gif") || strpos($tipo, "png") )
{
////  sube el archivo..................
}

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 29 May 2008 05:48 am
Ok esta bien me lo aceptarias asi:?


$tipo = $_FILES["archivo"]['type'];
if($tipo==='jpg'||$tipo==='gif'||$tipo==='png') {
//// sube el archivo..................
}

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.