Ola, eu fiz 4 arquivos para um trabalho de faculdade em PHP, o projeto precisa fazer upload, listar e excluir fotos. Os códigos inicialmente foi passado pelo professor e eu tive que ir apenas remodelando e encaixando dentro do que o professor passou.
Porem, apos feito tudo, ficou faltando a OO, algo que tenho muita dificuldade, o professor disse que preciso mover as regras de negocio dos scripts e jogar para a classe, Nesse ponto que preciso de ajuda e não sei como fazer.
segue os codigos:
//UPLOAD DE ARQUIVO
<?php
$error = '';
if (isset($_POST['nome']) && $_POST['nome']!='' && isset($_FILES['imagem'])) {
$name = $_FILES["imagem"]["name"];
$ext = end((explode(".", $name))); # extra () to prevent notice
$uploaddir = '../uploads/';
$uploadfile = $uploaddir . $_POST['nome'].'.'.$ext;
if (move_uploaded_file($_FILES['imagem']['tmp_name'], $uploadfile)) {
echo "Arquivo válido e enviado com sucesso.\n";
}
}else { $error = "error"; }
header('Location: '.'index.php?'.$error);
?>
-----------------------------------------------------------------------
//excluir arquivo
<?php
$delete = $_GET['excluir'];
unlink('../uploads/'.$delete); header('Location: '.'index.php');
?>
-----------------------------------------------------------------------
//CLASSE DIRETORIO
accept
classe diretorio que preciso passar para POO:
<?php
interface DiretorioInterface { public function recuperarListaArquivos();//{}chaves no lugar do ; public function excluirArquivo($nome_arquivo);//{} public function cadastrarArquivo($arquivo);//{}
}
class Diretorio implements DiretorioInterface {
}
?>
---------------------------------------------------------------------------
//index
<?php
// utilizar este arquivo ao invés de index.html
// pois com o PHP vai ser possível tornar a lista de arquivos
// uma lista dinâmica, ou seja, com base no que existe na pasta
// e é preciso formatar o formulário para que esteja
// enviando seus dados de forma correta para o script cadastrar_arquivo.php
// ** lembre-se do método, do action e do enctype
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Mapa Unicesumar</title>
<!-- Bootstrap Core CSS -->
<link href="../vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- MetisMenu CSS -->
<link href="../vendor/metisMenu/metisMenu.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="../dist/css/sb-admin-2.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="../vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div id="wrapper">
<!-- Navigation -->
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header">
<a class="navbar-brand" href="index.html">MAPA - EAD UniCesumar</a>
</div>
<!-- /.navbar-header -->
</nav>
<div id="page-wrapper" style="margin-left:0px">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h1 class="page-header">Leitura de Pasta e Envio de Arquivos</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<!-- /.row -->
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading" >
Digite o nome do arquivo e anexe o documento...
</div>
<?php if (isset($_GET['error'])) {?>
<div class="panel-heading" style="background-color: #cccccc;">
Preencha o formulário corretamente!
</div>
<?php }?>
<div class="panel-body">
<div class="row">
<div class="col-lg-12">
<form role="form" name="upload" action="cadastrar_arquivo.php" method="post" enctype="multipart/form-data">
<div class="form-group">
<label>Nome do Arquivo</label>
<input name="nome" class="form-control">
<p class="help-block">Digite o nome que o arquivo será salvo...</p>
</div>
<div class="form-group">
<label>Anexar Arquivo</label>
<input name="imagem" type="file">
</div>
<button type="submit" class="btn btn-active">Enviar Arquivo</button>
</form>
</div>
<!-- /.col-lg-12 (nested) -->
</div>
<!-- /.row (nested) -->
</div>
<!-- /.panel-body -->
</div>
<!-- /.panel -->
</div>
<!-- /.col-lg-12 -->
</div>
<!-- /.row -->
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">
Relatório de Arquivos
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>#</th>
<th>Arquivo</th>
<th>Excluir?</th>
</tr>
</thead>
<tbody>
<?php
$dir = '../uploads';
$files1 = scandir($dir);
$i=0;
foreach ($files1 as $file){
if(strlen($file)>3) {
$i++;
?>
<?php echo $file ?>
<tr>
<td><?php echo $i ?></td>
<td><?php echo $file ?><img src="<?php echo $dir.'/'.$file ?>" title="<?php echo $file ?>" style="width: 15%;"/></td>
<td><a href="excluir_arquivo.php?excluir=<?php echo$file?>">Excluir</a></td>
</tr>
<!--<tr>
<td><?php echo $i ?></td>
<td><img src="<?php echo $dir.'/'.$file ?>" title="<?php echo $file ?>" style="width: 15%;"/></td>
<td><a href="excluir_arquivo.php?excluir=<?php echo$file?>">Excluir</a></td>
</tr>-->
<?php
}
}
?>
</tbody>
</table>
</div>
<!-- /.table-responsive -->
</div>
<!-- /.panel-body -->
</div>
</div>
</div>
</div>
<!-- /#page-wrapper -->
</div>
<!-- /#wrapper -->
<!-- jQuery -->
<script src="../vendor/jquery/jquery.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="../vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- Metis Menu Plugin JavaScript -->
<script src="../vendor/metisMenu/metisMenu.min.js"></script>
<!-- Custom Theme JavaScript -->
<script src="../dist/js/sb-admin-2.js"></script>
</body>
</html>