Nickz 0 Denunciar post Postado Março 30, 2010 Bom tenho um sistema de upload Principal <form action="upload.php" method="post" ENCTYPE="multipart/form-data"> <p align="left"><font size="4" face="Verdana" color="#CCCCCC"> <b><font color="#999999">Upload</font></b></font></p> <div align="left"> <table width="401" border="0" align="left" cellspacing="1" cellpadding="1"> <tr bgcolor="#CCCCCC"> </tr> <tr bgcolor="#E1E1E1"> <td> </tr> <tr bgcolor="#E1E1E1"> <td nowrap><font size="2" face="Verdana">Nome do Diretorio</font></td> <td><input type="radio" name="select_dir" value="diretorio2"> </td> <td><input type="text" name="diretorio2" size="15"> </td> </tr> <tr bgcolor="#E1E1E1"> <td><font size="2" face="Verdana">Arquivo</font></td> <td> </td> <td><input type="file" size=15 name="file"> </td> </tr> <tr> <td colspan="3"> <div align="left"> <input type="submit" value="Enviar" name="submit"> </div> </td> </tr> </table> <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> <br> </div> </form> <p> </p> <p> <?include ('rodape.php')?> </p> <p> </p> <p>* Dica, facilite a organização use sempre o mesmo nome para seu diretorio!</p> Upload <?php /* * Upload 2.0 30/12/03 * * Envia arquivos para a pasta escolhida pelo usuário * caso não exista, a pasta será criada no servidor. * * Diego Monteiro Medeiros de Araújo * hypermedeiros@yahoo.com.br */ // Altera o umask para a criação do diretório $umask_anterior = umask(0); if ($_FILES["file"]["error"] === 0) { @ mkdir($_POST["{$_POST["select_dir"]}"],0777); @ move_uploaded_file($_FILES["file"]["tmp_name"],"./{$_POST["{$_POST["select_dir"]}"]}/{$_FILES["file"]["name"]}"); ?> <script> window.alert('Arquivo carregado com sucesso!!'); history.back(); </script> <? } else { switch ($_FILES["file"]["error"]) { case 1: $msg_err = "O arquivo no upload é maior do que o limite \ndefinido em upload_max_filesize no php.ini!"; break; case 2: $msg_err = "O arquivo ultrapassa o limite de tamanho em \nMAX_FILE_SIZE que foi especificado no formulário!"; break; case 3: $msg_err = "O upload do arquivo foi feito parcialmente!"; break; case 4: $msg_err = "Não foi feito o upload do arquivo. Tente novamente!!!"; break; default: $msg_err = "Ocorreu um erro.\nVerifique qual o problema!!!"; } ?> <script> window.alert('<?=$msg_err?>'); history.back(); </script> <? umask($umask_anterior); } ?> Listagem de arquivos <? $dh = opendir(($dir = './')); while (false !== ($filename = readdir($dh))) { ?> <table width="401" border="0" align="center" cellspacing="1" cellpadding="1"> <tr> <? if (is_dir("$dir$filename") && ! ($filename == '.' || $filename == '..')) { ?> <td width="15%">Diretório</td> <td width="85%"><?="<a href=\"$dir$filename\">$filename</a>"?></td> </tr> <? } elseif (is_file("$dir$filename") && ! ($filename == '.' || $filename == '..')) { ?> <tr> <td width="15%">Arquivo</td> <td width="85%"><?="<a href=\"$dir$filename\">$filename</a>"?></td> <? } ?> </tr> </table> <? } ?> Está me servindo super bem, so estou com dois problemas, 1 não estou conseguindo uma forma de colocar a opção de deletar esse arquivo na listagem nem, uma forma de exibir a ultima vez que ele foi editado, quem tiver alguma dica, quanto a me recomendar o MTUPLOAD, eu não achei viavel o uso, pois tive um problem a com ele. Compartilhar este post Link para o post Compartilhar em outros sites
Artur ~ 0 Denunciar post Postado Março 30, 2010 Sou leigo, mas a lista assim como as informações dos arquivos são gravados no mysql? Se não, eu não entendo nada =/ Se for no mysql faz update com a function date (y) Compartilhar este post Link para o post Compartilhar em outros sites
Nickz 0 Denunciar post Postado Março 30, 2010 Poxa, o script tá ai, não não usa mysql ;x se fosse seria bacana mesmo, mas de qualquer forma valeu a tentativa! Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Março 30, 2010 A função filemtime retorna a data da últuma modificação do arquivo (mas não sei se isso é confiável), quanto a apagar, você teria que passar um link com o nome do arquivo, algo do tipo: <a href="apagar=arquivotal.doc">APAGAR</a> Ai no PHP você verifica se o apagar está setado e apaga o arquivo if(isset($_GET['apagar'])){ unlink($_GET['apagar']); } Óbvio que é interessante ver se o arquivo existe, e verificar se o cara não está tentando injetar algo no teu script.. Compartilhar este post Link para o post Compartilhar em outros sites
okrek 0 Denunciar post Postado Março 31, 2010 amigo, muito bom. posso dar uma ideia para seu sistema ficar perfeito? quando der o comando de up, tem como fazer que um arquivo index (para listagem) seja copiado juntamente com o arquivo na pasta criada? assim quando a pasta for criada, ela já terá listagem automatica. desta maneira você colocaria uma listagem no diretorio do up, que iria listar todas as pastas, e as que forem criadas já terão o arquivo de listagem dentro delas, sendo um index, entendeu "mai" ou "meno" ? vlw. seria algo no estilo: <?php $file = 'example.txt'; $newfile = 'example.txt.bak'; if (!copy($file, $newfile)) { echo "failed to copy $file...\n"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
okrek 0 Denunciar post Postado Março 31, 2010 ta feito: $de = "/home/SEU_DOMINIO/public_html/arquivo_de_listagem/index.php"; $para = "./{$_POST["{$_POST["select_dir"]}"]}/index.php"; if(copy($de, $para)) echo "Arquivo copiado com sucesso."; else echo "Não foi possível copiar o arquivo."; Desta maneira, você pode colocar um index em sua pasta pincipal de up-load, e quando você ver que tem uma pasta nova, basta entrar nela, que já vai existir a listagem, assim, você podera ver os arquivos já, ao inves de ter que ficar indo via FTP. abraços amigo. Compartilhar este post Link para o post Compartilhar em outros sites