Ir para conteúdo
Fórum Script Brasil
  • 0

chmod não funciona


Gel

Pergunta

Olá pessoal, estou com um probleminha é o seguinte: Tenho um script em PHP para enviar fotos, ele cria um diretorio ou a pessoa já escolha um diretorio criado. Só que ao criar um diretorio ou enviar as fotos para um já criado, não consigo baixar as fotos via FTP, sempre aparece a mensagem me informando que não tenho permissão. Tento dar chmod 0777 na foto e a mensgem é a mesma.

Outra coisa a pessoa pode enviar até 5 fotos por vez, porém se ela tentar enviar menos que isso não é enviada nenhuma foto, obrigando ela sempre ter que enviar as 5, gostaria de colocar uma função para que a pessoa fosse obrigada a enviar uma foto pelo menos, caso use o formulário de envio de fotos, e se deixar os outros 4 campos vazio, o envio dessa unica foto fosse efetuada.

=====================================

UPLOAD.PHP

<title>Upload de Fotos</title>

<form action="upload.php" method="post" ENCTYPE="multipart/form-data">

<p align="center"><b><font face="Verdana" size="2" color="#FF0000">ENVIAR

FOTOS</font></b></p>

<table width="346" border="1" align="center" bordercolor="#FFFFFF">

<tr>

<td border="1" bordercolor="#999999" width="389">

<table width="347" border="0" align="center" cellspacing="1" cellpadding="1">

<tr bgcolor="#E1E1E1">

<td bgcolor="EFEFEF" width="110"><div align="center"><font size="2" face="Verdana">Diretório</font></div></td>

<td bgcolor="#FFFFFF" width="25"><input type="radio" name="select_dir" value="diretorio" checked></td>

<td bgcolor="#FFFFFF" width="232"><select name="diretorio" size="1">

<option selected value="Escolha apasta">Escolha apasta</option>

<option value="Geral">Geral</option>

<option value="Pessoal">Pessoal</option>

<option value="Acampamento">Acampamento</option>

<option value="Aniversario">Aniversario</option>

<option value="Festas">Festas</option>

</select></td>

</tr>

<tr bgcolor="#E1E1E1">

<td nowrap bgcolor="EFEFEF" width="110"><div align="center"><font size="2" face="Verdana">

Outro diretório</font></div></td>

<td bgcolor="#FFFFFF" width="25"><input type="radio" name="select_dir" value="diretorio2"></td>

<td bgcolor="#FFFFFF" width="232">

<input type="text" name="diretorio2" size="19"></td>

</tr>

<tr bgcolor="#E1E1E1">

<td bgcolor="#EFEFEF" width="110"><div align="center"><font size="2" face="Verdana">Arquivo</font></div></td>

<td bgcolor="#FFFFFF" width="25"> </td>

<td bgcolor="#FFFFFF" width="232">

<input type="file" size=15 name="file"><input type="file" size=15 name="file1"><input type="file" size=15 name="file2"><input type="file" size=15 name="file3"><input type="file" size=15 name="file4"></td>

</tr>

<tr bgcolor="#EFEFEF">

<td colspan="3" width="369"><div align="center">

<input type="submit" value="Enviar" name="submit"><font size="2">

</font>

</div></td>

</tr>

</table> </td>

</tr>

</table>

<input type="hidden" name="MAX_FILE_SIZE" value="1000000">

<br>

</form>

<br>

<table width="245" border="1" align="center" bordercolor="#FFFFFF">

<tr>

<td bordercolor="#CCCCCC" width="235"><div align="center"><font size="1"></h><font face="Verdana, Arial, Helvetica, sans-serif">Adaptação:<strong> Jesimiel de Souza</strong></font></font></div></td>

</tr>

</table>

=====================================================

UPLOAD_FOTOS.PHP

<?php

// Altera o umask para a criação do diretório

$umask_anterior = umask(0);

if ($_FILES["file"]["error"] === 0)

if ($_FILES["file1"]["error"] === 0)

if ($_FILES["file2"]["error"] === 0)

if ($_FILES["file3"]["error"] === 0)

if ($_FILES["file4"]["error"] === 0)

{

if(!file_exists("afotos/".$_POST["{$_POST["select_dir"]}"]))

mkdir("afotos/".$_POST["{$_POST["select_dir"]}"],0777);

move_uploaded_file($_FILES["file"]["tmp_name"],"afotos/{$_POST["{$_POST["select_dir"]}"]}/{$_FILES['file']['name']}");

move_uploaded_file($_FILES["file1"]["tmp_name"],"afotos/{$_POST["{$_POST["select_dir"]}"]}/{$_FILES['file1']['name']}");

move_uploaded_file($_FILES["file2"]["tmp_name"],"afotos/{$_POST["{$_POST["select_dir"]}"]}/{$_FILES['file2']['name']}");

move_uploaded_file($_FILES["file3"]["tmp_name"],"afotos/{$_POST["{$_POST["select_dir"]}"]}/{$_FILES['file3']['name']}");

move_uploaded_file($_FILES["file4"]["tmp_name"],"afotos/{$_POST["{$_POST["select_dir"]}"]}/{$_FILES['file4']['name']}");

?>

<?

}

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!!!";

}

?>

&lt;script>

window.alert('<?=$msg_err?>');

history.back();

</script>

<?

umask($umask_anterior);

}

?>

<HTML>

<HEAD>

<TITLE>UPLOAD</TITLE>

<style type="text/css">

<!--

.style1 {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

}

a:link {

color: #000000;

text-decoration: none;

}

a:visited {

text-decoration: none;

color: #000000;

}

a:hover {

text-decoration: none;

color: #000000;

}

a:active {

text-decoration: none;

color: #000000;

}

.style2 {

font-family: Verdana, Arial, Helvetica, sans-serif;

font-size: 10px;

font-weight: bold;

}

.style3 {color: #FF0000}

-->

</style>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>

<BODY>

<H1 align="center" class="style1 style3"> </H1>

<H1 align="center" class="style1 style3"><span style="font-size: 9pt">Arquivo Enviado Com Sucesso!</span></H1>

<P align="center" class="style1"><span class="style3"><font size="2">[!]</font></span><font size="2"><a href="java script:history.back(1)" class="style3">

<b>Enviar Outro Arquivo</b></a><b> </b> <br>

</font>

<br>

<br>

</P>

<table width="30%" border="1" align="center" bordercolor="#FFFFFF">

<tr>

<td bordercolor="#CCCCCC"><div align="center"><font size="1"><font face="Verdana, Arial, Helvetica, sans-serif">Adaptação:<strong> Jesimiel

de Souza</strong></font></font></div></td>

</tr>

</table>

<P align="center" class="style1">  </P>

</BODY>

</HTML>

================================================================

Obrigado e aguardo um retorno!!!!!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

1 - Quanto ao problema que você citou de não conseguir baixar via FTP, isso tem a ver com o fato do teu host usar um usuário para o PHP (geralmente o nobody) e quando você se conecta via FTP o usuário é outro, dai dá o erro de permissão. No host que eu uso, o usuário que o PHP usa é o mesmo que eu uso para acessar o CPanel, nesse caso não acontece esse erro que você cita, mas esse tipo de configuração é rara. Nesse caso não há o que ser feito (pelo menos eu nunca achei uma solução para isso:

2 - Quando ao que você disse de só poder enviar 5 fotos, se enviar menos, nada acontece, chegou a dar uma olhada no teu script?

if ($_FILES["file"]["error"] === 0)
if ($_FILES["file1"]["error"] === 0)
if ($_FILES["file2"]["error"] === 0)
if ($_FILES["file3"]["error"] === 0)
if ($_FILES["file4"]["error"] === 0)
Se o primeiro campo tiver ok, teste o segundo, se o segundo estiver ok, testa o terceiro e assim por diante... se você quer que seja da maneira que falou vai ter que alterar par algo do tipo:
if ($_FILES["file"]["error"] === 0){
move_uploaded_file($_FILES["file"]["tmp_name"],"afotos/{$_POST["{$_POST["select_dir"]}"]}/{$_FILES['file']['name']}");
}

if ($_FILES["file1"]["error"] === 0){
move_uploaded_file($_FILES["file1"]["tmp_name"],"afotos/{$_POST["{$_POST["select_dir"]}"]}/{$_FILES['file1']['name']}");
}

E assim por diante, mas outras coisa vão ter que ser mudadas na lógica do script, mas ai é só dar uma estudada no código.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...