Ir para conteúdo

Sistema De Upload


Posts Recomendados

Irei mostrar um exemplo de um sistema de upload básico.

 

Explicações nos comentários

 

Primeiramente, o config.php:

 

<?php

// Tamanho máximo do arquivo (em MB)
$mb = 10;

// Extensões permitidas
$ext = "7z|rar|exe|zip|tar|tar.gz|txt|doc|otb|otbm|otx|cpp|h|dev|sql|jpeg|jpg|gif|bm
p|png|psd|pl|jar|xml";

// Destino dos arquivos
$path = "C:/diretorio/tal";

?>

Observe que as extensões são separadas por um |

 

Agora o principal, index.php

 

<form method="post" enctype="multipart/form-data">
Uploader <input type="file" name="file">
<input type="submit" value="Upload" name="upload">
</form>

<?php
if(IsSet($_POST['upload'])) {
require("config.php");
$erro = $config = array();

// Prepara a variável do arquivo
$arquivo = isset($_FILES["file"]) ? $_FILES["file"] : FALSE;

// Tamanho máximo
$config["tamanho"] = $mb * pow(1024,2);

// Formulário postado... executa as ações
if($arquivo)
{  
	if(!preg_match("/\.($ext){1}$/i", $arquivo["name"], $ext))
	{
		$erro[] = "Formato incompatível";
		echo "<meta http-equiv=\"refresh\" content=\"0;url=index.php\">";
	}

	else
	{
		// Verifica tamanho do arquivo
		if($arquivo["size"] > $config["tamanho"])
		{
			$erro[] = "Tamanho muito grande. 
			O arquivo deve ser de no máximo $mb MBs.
			Envie outro arquivo";
			echo "<meta http-equiv=\"refresh\" content=\"0;url=index.php\">";
		}

	}

	// Imprime as mensagens de erro
	if(sizeof($erro))
	{
		foreach($erro as $err)
		{
			echo " - " . $err . "<br />";
		}

		echo "<meta http-equiv=\"refresh\" content=\"0;url=index.php\">";
	}

	// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
	else
	{
		// Pega extensão do arquivo
		preg_match("/\.($ext){1}$/i", $arquivo["name"], $ext);

		// Gera um nome único 
		$file_name = md5(uniqid(time())) . "." . $ext[1];

		// Diretório
		$file_dir = $path . $file_name;

		// Faz o upload
		move_uploaded_file($arquivo["tmp_name"], $file_dir);

		echo "Arquivo enviado com sucesso";
		echo "<meta http-equiv=\"refresh\" content=\"0;url=index.php\">";
	}
}
}
?>

 

Caso queira, você poderá fazer o download pelo link abaixo:

 

 

Espero que gostem do sistema, e utilizem.

Editado por Nostradamus
Link para o comentário
Compartilhar em outros sites

muito bom o upload

gostei

 

eu também usava um upload, só que era de imagens, vo aproveita e posta aqui esse que eu fiz xD

<?
$upload_folder = 'files'; // pasta dentro do site
if(isset($_FILES['userfile'])){
if(ereg('jpg|png|jpeg|bmp|gif|swf$', $_FILES['upload_file']['name'])) {
$upload_directory = getcwd().'/'.$upload_folder.'/';
$_FILES['userfile']['name'] = str_replace(' ', '_', $_FILES['userfile']['name']);
$upload_file = $upload_directory.$_FILES['userfile']['name'];
$string_name = '';
$x = 1;
while(file_exists($upload_file)) {
$upload_file = $upload_directory.'('.$x.')'.$_FILES['userfile']['name'];
$string_name = '('.$x.')';
$x++;}
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_file)) {
echo 'Imagem carregada com sucesso.<br/>'.$_SERVER["HTTP_REFERER"].$upload_folder.$string_name.$_FILES['userfile']['name'].'<br/>';
}}
else {
echo 'Falha no carregamento da imagem<br/>';}}
echo '<form enctype="multipart/form-data" method="post">
<b>Arquivo: <input type="file" name="userfile"/>
<br/><input type="submit" name="upload" value="Upload"/>
</form>';
?>

só que esse que eu tinha feito, não tem tamanho máximo =\

o seu ta melhor

parabens aew

Editado por ZeZiNhOxD
Link para o comentário
Compartilhar em outros sites

Código muito bom, me serviu para estudo, pois eu numca tinha visto um code deste tipo o.O

 

Muito legal :D

 

@ZeZiNhOxD

 

Gostei do seu tamém, mas ele está meio confuso :S

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...