Jump to content

file upload com criação de pasta por id


Fakcon
 Share

Recommended Posts

na listagem.php está o botão para anexar ficheiro:

                        <div align="center"> 
                          <a href="form_livros_upload.php?id_livro=<? print $id_livros; ?>">
                            <img src ="imagens/btn_updoc.jpg" title="Anexar ficheiro" border="0"></a>
                        </div>

form_livros_upload.php

<html>
<body>
<pre>
<form action="upload_livros_file.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="id_livro" value="<?=$_GET['id_livro']?>"/>
<input type="file" name="ficheiro" />
<input type="submit" value="ok"/>
</form>
</pre>
</body>
</html>

////////////////////////////////////// AQUI DÁ ERRO, SE ALGUÉM SOUBER O QUE SE PASSA? EUJÁ NÃO VEJO NADA. AJUDEM-ME, OBRIGADO

? 😁

Warning: mkdir() [function.mkdir]: No such file or directory in /home/site/public_html/mysite.com/admin/upload_livros_file.php on line 5

Warning: move_uploaded_file(/tmp/uploads/livros/25/lol.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/site/public_html/mysite.com/admin/upload_livros_file.php on line 6

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpxRE9cu' to '/tmp/uploads/livros/25/lol.jpg' in /home/site/public_html/mysite.com/admin/upload_livros_file.php on line 6

Ficheiro "lol.jpg" enviado com sucesso

upload_livros_file.php

<?php
if(!empty($_FILES['ficheiro'])
&& $_FILES['ficheiro']['error']===UPLOAD_ERR_OK) {
  mkdir($p='/tmp/uploads/livros/'.$_POST['id_livro']);
  move_uploaded_file($_FILES['ficheiro']['tmp_name'],$p.'/'.$_FILES['ficheiro']['name']);
  echo 'Ficheiro "'.$_FILES['ficheiro']['name'].'" enviado com sucesso';
} else {
  echo 'sem ficheiros para carregar';
}
?>

listar os ficheiros carregados inerentes ao id_livro escolhido:

<?php

$h=opendir('/tmp/uploads/livros/'.$_GET['id_livro']);
while(($f=readdir($h))!==false) {
  if($f!='.'&&$f!='..') {
    echo '<p><a href="download_ficheiro.php?id_livro='.$_GET['id_livro'].'&file='.$f.'">'.$f.'</a></p>';
  }
}

download_ficheiro.php

<?php

// validar a sessao e o acesso

// validacao 1: user_id existe

// validacao 2: id_livros(user_id) existe e é igual a user_id

// if($user_no_livro_id_livros != user_id_de_login) erro de permissoes

$ficheiro='/tmp/uploads/livros/'.$_GET['id_livro'].'/'.$_REQUEST['file'];

$mime_types=array(
  'jpg'=>'Content-type: image/jpg',
  'gif'=>'Content-type: image/gif',
  'php'=>'Content-type: text/plain'
);
header($mime_types[strtolower(array_pop(explode('.',$_REQUEST['file'])))]);
header("Content-Disposition: attachment; filename=\"{$_REQUEST['file']}\"");
header("Content-Length: ".filesize($ficheiro));
readfile($ficheiro);

///////////////////////////////////////////////// outra dúvida relacionada com isto

Quando o script criar a pasta com o nome do id_livro, e colocar lá dentro as fotos escolhidas, como será possivel ? impedir que alguém coloque no url algo tipo: http: www.  ... ... ...  /tmp/uploads/livros/  e depois é só por aqui id's aleatórios vai ver e poder fazer download de tudo o que lá estiver dentro.

e isto não pode ser, este conteúdo é confidencial, alguém sabe como me ajudar.

Muito obrigado

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.