Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Script para upload de múltiplos arquivos, no caso para arquivos de imagem, mas basta adaptar a parte referente ao MIME type.
Premissa:
Arquivo upload.php, Diretório upload, Testado no LAMP
<?php
$path = "/home/username/www/upload";
if(isset($_POST['submit'])) {
for($i=0;$i<10;$i++) {
if(!empty($_FILES['foto']['name'][$i])){
//Renomeia nome das fotos
$var = explode(" ",strtolower($_FILES['foto']['name'][$i]));
foreach($var as $img){$picturename .= $img;}
$picturename = preg_replace( "/[^a-z0-9\\.\\-\\_]/i", "", $picturename );
//Procura por nomes repetidos
if(file_exists("$path/".$picturename."")){
$erro[] = "Já existe um arquivo com o nome ".$picturename." no servidor.";
}
//Seleciona MIME type
list($nome, $ext) = explode("/", $_FILES['foto']['type'][$i]);
if($ext!="jpg" & $ext!="jpeg" & $ext!="jpg" & $ext!="pjpeg" & $ext!="png" & $ext!="gif"){
$erro[] = "Formato do arquivo ".$picturename." é inválido (".$ext."), serão aceitos jpg, png e gif";
}
//Seleciona por tamanho do arquivo
if($_FILES['foto']['size'][$i]>1024000){
$erro[] = "Arquivo muito grande (".$_FILES['foto']['size'][$i]."), tamanho máximo: 1024Kb";
}
//Mostra erro, ou faz o upload
$file = $path.$picturename;
if(sizeof($erro)){
foreach($erro as $e){
echo $e."<br />";
}
}
else{
move_uploaded_file($_FILES['foto']['tmp_name'][$i], $file);
echo "Arquivo ".$_FILES['foto']['name'][$i]." carregado no servidor<br />";
}
//Limpa as variaveis
unset($picturename,$e,$erro,$var,$img,$nome,$ext);
}
}
}
?>
<form method="post" action="upload.php" enctype="multipart/form-data">
01 <input name="foto[]" type="file" size="15" /><br />
02 <input name="foto[]" type="file" size="15" /><br />
03 <input name="foto[]" type="file" size="15" /><br />
04 <input name="foto[]" type="file" size="15" /><br />
05 <input name="foto[]" type="file" size="15" /><br />
06 <input name="foto[]" type="file" size="15" /><br />
07 <input name="foto[]" type="file" size="15" /><br />
08 <input name="foto[]" type="file" size="15" /><br />
09 <input name="foto[]" type="file" size="15" /><br />
10 <input name="foto[]" type="file" size="15" /><br />
<input type="submit" name="submit" value="Enviar" /><br />
</form>
<?php
// Lista arquivos de um diretório
if (is_dir($path)) {
if ($dh = opendir($path)) {
while (($file = readdir($dh)) !== false) {
echo "<a href=\"$file\" >[http://seusite.com.br/upload/$file
;-)
Carregando comentários...