Upload de Arquivos (file_exists)
Galera, estou trabalhando em um projeto que possui uma funcionalidade de upload e download de arquivos.
Porém, estou com um probleminha e não consigo resolver mesmo depois de várias pesquisas.
O upload do arquivo está sendo feito e cadastrando as informações no banco normalmente. Mas se for feito o upload do arquivo com o mesmo nome, o arquivo que já existe é sobrescrito.
Tentei criar uma condição pra que o arquivo seja renomeado caso já exista através do file_exists(), mas não funciona de jeito nenhum.
Gostaria da ajuda de vocês quanto a isso!
<?php
require ("conectfile.php");
require ("zipar.class.php");
$msg = false; //mensagem de erro.
if (isset($_POST['enviar'])) {
$arq = $_FILES['arquivo']['name'];
$arq = str_replace(" ","_",$arq);// o método "str_replace" faz substituição de caracteres.
$arq = str_replace("á","a",$arq);
$arq = str_replace("à","a",$arq);
$arq = str_replace("ã","a",$arq);
$arq = str_replace("â","a",$arq);
$arq = str_replace("é","e",$arq);
$arq = str_replace("ê","e",$arq);
$arq = str_replace("í","i",$arq);
$arq = str_replace("ô","o",$arq);
$arq = str_replace("õ","o",$arq);
$arq = str_replace("ó","o",$arq);
$arq = str_replace("ú","u",$arq);
$arq = str_replace("ü","u",$arq);
$arq = str_replace("ç","c",$arq);
$arq = strtolower($arq);//o método "strtolower" converte as letras para minúsculo
$drct = "C:/xampp/htdocs/testes/up_down/";
$a = 1;
$insrt = $cnct_arq -> prepare("INSERT INTO arq_teste (id, arquivo, data_arq)
VALUES (null, '$arq.zip', NOW())");
$insrt -> execute();
if ($insrt->rowCount()>0 && file_exists($drct.$arq))/*verifica se o arquivo existe*/{
//condição de verificação de duplicidade do nome do arquivo.
rename($arq, "(".$a.")".$aqr);//renomeia o arquivo "rename(nome_antigo, nome_novo)"
while(file_exists($drct."(".$a.")".$aqr)){
$a++;
}
echo "Arquivo renomeado!";
move_uploaded_file($_FILES['arquivo']['tmp_name'],$drct.$arq);
$zip = new zipar();
$zip->ziparArq($arq, $arq.".zip", $drct);
unlink($drct.$arq);//exclui o arquivo original.
$msg = "Arquivo enviado com sucesso!";
}elseif ($insrt->rowCount()>0){
move_uploaded_file($_FILES['arquivo']['tmp_name'],$drct.$arq);
$zip = new zipar();
$zip->ziparArq($arq, $arq.".zip", $drct);
unlink($drct.$arq);//exclui o arquivo original.
$msg = "Arquivo enviado com sucesso!";
}else{
$msg = "Falha ao enviar o arquivo.";
}
}
?>
<form method="post" action="formuploadfile.php" enctype="multipart/form-data">
<h2>Envio de arquivos</h2>
<label>Selecionar arquivo: </label>
<input type="file" name="arquivo" />
<input type="submit" name="enviar" value="Enviar" />
<?php if ($msg != false){
echo "<p> $msg </p>";
}
?>
</form>
<table cellpadding="3" cellspacing="0" border="0">
<thead>
<tr>
<td width="200">NOME DO ARQUIVO</td>
<td width="250">DATA DE MODIFICAÇÃO</td>
<td width="200">DOWNLOAD</td>
</tr>
</thead>
<tbody>
<?php
$sqlShow = "SELECT * FROM arq_teste";
try{
$show = $cnct_arq -> prepare($sqlShow);
$show -> execute();
}catch(PDOException $e){
echo $e->getMessage();
}
while($showfield = $show->fetch(PDO::FETCH_ASSOC)){
?>
<tr>
<td><?php echo $showfield["arquivo"] ?></td>
<td><?php echo $showfield["data_arq"] ?></td>
<td><a href="up_down/<?php echo $showfield["arquivo"] ?>">Download</a></td>
</tr>
<?php
}
?>
</tbody>
</table>Discussão (0)
Carregando comentários...