Foros del Web » Programando para Internet » PHP »

Upload Files

Estas en el tema de Upload Files en el foro de PHP en Foros del Web. Consegui este sistema para subir archivos via php a mi server.. pero me gustaria agregarle un par de cosas pero no consigo como 1.- Restriccion ...
  #1 (permalink)  
Antiguo 04/09/2004, 16:00
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Upload Files

Consegui este sistema para subir archivos via php a mi server.. pero me gustaria agregarle un par de cosas pero no consigo como
1.- Restriccion de extenciones para subir archivos... solo .crw
2.- Bloqueo Bloqueo de peso de archivos.. no mas de 0.5MB

Fichero como tal consta de 2 archivos
1.- Uploarder.php
Código PHP:
<HTML>
<HEAD>
  <TITLE>Uploader v1.1 - Powered by: ([url]http://www.phpscriptcenter.com/uploader.php[/url])</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<!--

Powered by: Uploader Version 1.1 ([url]http://www.phpscriptcenter.com/uploader.php[/url])

-->
<?php

///////////////////////////////////////////////
//                                           //
// Uploader v.1.1                            //
// ----------------------------------------- //
// by Graeme ([email protected]) //
// [url]http://www.phpscriptcenter.com[/url]            //
//                                           //////////////////////////////
// PHP Script CENTER offers no warranties on this script.                //
// The owner/licensee of the script is solely responsible for any        //
// problems caused by installation of the script or use of the script    //
//                                                                       //
// All copyright notices regarding Uploader, must remain                 //
// intact on the scripts and in the HTML for the scripts.                //
//                                                                       //
// (c) Copyright 2001 PHP Script CENTER                                  //
//                                                                       //
// For more info on Uploader,                                            //
// see [url]http://www.phpscriptcenter.com/uploader.php[/url]                       //
//                                                                       //
///////////////////////////////////////////////////////////////////////////

require("setup.php");

if(
$doupload) {

if(
$ADMIN[RequirePass] == "Yes") {
if(
$password != "$ADMIN[Password]") {
?>
<P><CENTER><B><FONT FACE="Verdana">Error</FONT></B></CENTER></P>
<P><CENTER><TABLE WIDTH="450" BORDER="0" CELLSPACING="0"
CELLPADDING="0">
  <TR>
    <TD WIDTH="100%" BGCOLOR="#000000">
    <TABLE WIDTH="450" BORDER="0" CELLSPACING="1" CELLPADDING="2">
      <TR>
        <TD COLSPAN="2" BGCOLOR="#ffffff">
        <FONT COLOR="#000000" SIZE="-1" FACE="Verdana">Invalid Password</FONT></TD>
      </TR>
    </TABLE></TD>
  </TR>
</TABLE></CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER><FONT SIZE="-2" FACE="Verdana"><B>Powered by:</B> <A HREF="http://www.phpscriptcenter.com/uploader.php" TARGET="_blank">Uploader</A> Version 1.1</FONT></CENTER>
</BODY>
</HTML>
<?php
exit();
}
}

$num 0;
while(
$num $ADMIN[UploadNum]) {
$num++;


$picture "fileup$num"."_name";
$picture1 = $$picture;
$picture2 "fileup$num";
$picture3 = $$picture2;

if(
$picture3 != "none") {
$filesizebtyes filesize($picture3);

$ok 1;
if(
$filesizebtyes 10) {
$error .= "Error uploading (file size lower than 10 bytes) for file $num<BR>";
$ok 2;
}



if(
file_exists("$ADMIN[directory]/$picture1") OR $ok == 2) {
$error .="File name already exists for file $num<BR>";
} else {
copy ($picture3"$ADMIN[directory]/$picture1");
$error .="File $num has been uploaded<BR>";
}
}
}

if(!
$error) {
$error .= "No files have been selected for upload";
}


?>
<P><CENTER><B><FONT FACE="Verdana">Status</FONT></B></CENTER></P>

<P><CENTER><TABLE WIDTH="450" BORDER="0" CELLSPACING="0"
CELLPADDING="0">
  <TR>
    <TD WIDTH="100%" BGCOLOR="#000000">
    <TABLE WIDTH="450" BORDER="0" CELLSPACING="1" CELLPADDING="2">
      <TR>
        <TD COLSPAN="2" BGCOLOR="#ffffff">
        <FONT COLOR="#000000" SIZE="-1" FACE="Verdana"><?php echo $error?></FONT></TD>
      </TR>
    </TABLE></TD>
  </TR>
</TABLE></CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER><FONT SIZE="-2" FACE="Verdana"><B>Powered by:</B> <A HREF="http://www.phpscriptcenter.com/uploader.php" TARGET="_blank">Uploader</A> Version 1.1</FONT></CENTER>
</BODY>
</HTML>
<?php
exit();

} else {

$num 0;
while(
$num $ADMIN[UploadNum]) {
$num++;
$html .= "<TR>
        <TD WIDTH=\"25%\" BGCOLOR=\"#295e85\">
        <FONT COLOR=\"#ffffff\" SIZE=\"-1\" FACE=\"Verdana\">File $num:</FONT></TD> 
        <TD WIDTH=\"75%\" BGCOLOR=\"#ffffff\">
        <INPUT NAME=\"fileup$num\" TYPE=\"file\" SIZE=\"25\">
</TD> "
;
}

?>
<FORM ENCTYPE="multipart/form-data" ACTION="uploader.php" METHOD="POST">
<P><CENTER><B><FONT FACE="Verdana">Upload</FONT></B></CENTER></P>

<P><CENTER><TABLE WIDTH="450" BORDER="0" CELLSPACING="0" CELLPADDING="0">
  <TR>
    <TD WIDTH="100%" BGCOLOR="#000000">
    <TABLE WIDTH="450" BORDER="0" CELLSPACING="1" CELLPADDING="2">
      <TR>
        <TD COLSPAN="2" BGCOLOR="#295e85">
        <B><FONT COLOR="#ffffff" SIZE="-1" FACE="Verdana">Select Files</FONT></B></TD>
         
      </TR><?php echo $html?>
    </TABLE></TD>
  </TR>
</TABLE></CENTER></P>
<?php
if($ADMIN[RequirePass] == "Yes") {
?>
<P><CENTER><TABLE BORDER="0" CELLSPACING="0"  CELLPADDING="0">
  <TR>
    <TD WIDTH="100%" BGCOLOR="#000000">
    <TABLE WIDTH="300" BORDER="0" CELLSPACING="1" CELLPADDING="2">
      <TR>
        <TD WIDTH="33%" BGCOLOR="#295e85">
        <B><FONT COLOR="#ffffff" SIZE="-1" FACE="Verdana">Password:</FONT></B></TD> 
        <TD WIDTH="67%" BGCOLOR="#ffffff">
        <INPUT NAME="password" TYPE="password" SIZE="25">
</TD> 
      </TR>
    </TABLE></TD>
  </TR>
</TABLE></CENTER></P>
<?php
}
?>
<P><CENTER><INPUT NAME="doupload" TYPE="submit" VALUE="Upload Files"></CENTER></FORM>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER>&nbsp;</CENTER></P>
<P><CENTER><FONT SIZE="-2" FACE="Verdana"><B>Powered by:</B> <A HREF="http://www.phpscriptcenter.com/uploader.php" TARGET="_blank">Uploader</A> Version 1.1</FONT></CENTER>
</BODY>
</HTML>
<?php
exit();
}


?>
y Otro

Setup.php
Código PHP:
<?php

///////////////////////////////////////////////
//                                           //
// Uploader v.1.1                            //
// ----------------------------------------- //
// by Graeme ([email protected]) //
// [url]http://www.phpscriptcenter.com[/url]            //
//                                           //////////////////////////////
// PHP Script CENTER offers no warranties on this script.                //
// The owner/licensee of the script is solely responsible for any        //
// problems caused by installation of the script or use of the script    //
//                                                                       //
// All copyright notices regarding Uploader, must remain                 //
// intact on the scripts and in the HTML for the scripts.                //
//                                                                       //
// (c) Copyright 2001 PHP Script CENTER                                  //
//                                                                       //
// For more info on Uploader,                                            //
// see [url]http://www.phpscriptcenter.com/uploader.php[/url]                       //
//                                                                       //
///////////////////////////////////////////////////////////////////////////

$ADMIN[RequirePass] = "No";   // Checks to see if upload has a vaild password
$ADMIN[Password] = "password";   // This is the password if the above option is Yes
$ADMIN[UploadNum] = "5";  // Number of upload feilds to put on the html page
$ADMIN[directory] = "uploads";  // The directory the files will be uploaded to (must be chmoded to 777)

?>
Alguie me puede ayudar
  #2 (permalink)  
Antiguo 04/09/2004, 16:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te fijas en el código que pusistes:

if($filesizebtyes < 10) {
$error .= "Error uploading (file size lower than 10 bytes) for file $num<BR>";
$ok = 2;
}


ahí limitas el tamañó mínimo de tu archivo .. así que si añades otra condición más tipo:

Cita:
if($filesizebtyes < 10 || $filesizebtytes > 512000) {
$error .= "Error uploading (file size lower than 10 bytes o mayor que 500 Kbytes) for file $num<BR>";
$ok = 2;
}
Eso sí, recuerda que esa limitición la impondrá PHP al subir el archivo por completo .. así que si suben "10 MB" .. tendrán que esperar el tiempo que eso le lleve para que tu rutina "avise" que el tamaño es superior al permitido.

En cuanto a la extensión de tu archivo .. Mejor sería ver el formato MIME del archivo que no la extensión física (la cual se puede alterar: ejemplo .. cambia un .exe a .crw y veras como tu rutina fallaría) ...

En la variable:
$picture_type = "fileup$num"."_type"; // type es el parámetro que indica el formato MIME de tu archivo ...

Podrías obtener el formato MIME de tus archivo y en consecuencia aplicar tu "if()" para aplicar la restricción.

Por tu seguridad .. te recomiendo que leas la documentación oficial de PHP sobre el "Upload" de archivos y USES! los arrays superglobales para acceder a tus archivos .. además de la técnica propuesta para subir multiples archivos (en forma de "array") .. ese código es INSEGURO!.

Y por compatibilidad (con configuraciones de PHP) usar en lugar de copy() la función move_uploaded_file()

más info:
http://www.php.net/manual/en/features.file-upload.php

Un saludo,


Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:47.