2
Good afternoon, I’m with a folder permission error, my code mounts the gallery records the first photo as the cover and then creates a folder inside the directory stipulated by me, and the same places the images of the gallery inside.
it records the first photo and data but does not save the gallery.. returns to me:
permission! permission! as I stipulated in an if you will see in the following code, only that I put the permissions 777 does not write the folder, and the other server works, but not this one.. follows the code.
` // Include the file connects.php that connects to the database include "connect.php" ;
//Dou um Extract e jogo o valor dentro da variavel $arq1
extract($_POST);
$arq1=$_FILES["imagem"]["name"];
//Seleciona a ultima entrada do banco na tabela galeria
$s_trab = "SELECT id
FROM portifolio";
$t_trab = mysql_query($s_trab) or die(mysql_error());
$trab = mysql_fetch_array($t_trab);
//Dou um nome para a foto que será o ultimo id + 1
$nome = $trab[id] + 1;
//crio um nome único para a imagem
$arq1 = $nome.$_FILES['imagem']['name'];
//cria um nome temporário para mover o arquivo
$arq1_tmp = $_FILES['imagem']['tmp_name'];
//Comando para mover o arquivo para o doretório especificado, aplicando o nome definido anteriormente
move_uploaded_file($arq1_tmp,"foto_portifolio/".$arq1);
// galeria
$p = 0;
$countArr = count($_FILES['arquivo']['name']);
for($i = 0; $i < $countArr; $i++){
// verifica se foi enviado um arquivo
if(isset($_FILES['arquivo']['name'][$i]))
{
$arquivo_tmp = $_FILES['arquivo']['tmp_name'][$i];
$nome = $_FILES['arquivo']['name'][$i];
// Pega a extensao
$extensao = strrchr($nome, '.');
// Converte a extensao para mimusculo
$extensao = strtolower($extensao);
// Somente imagens, .jpg;.jpeg;.gif;.png
if(strstr('.jpg;.jpeg;.gif;.png;.bmp', $extensao))
{
// Cria um nome único para esta imagem
$novoNome = md5(microtime()) . $extensao;
if($p == 0){
$trataEspaco = str_replace(" ", "", $_POST['titulo']);
@mkdir('foto_portifolio/galeria/'.$trataEspaco.'/');
$p = 1;
}
// Concatena a pasta com o nome
$destino = 'foto_portifolio/galeria/'.$trataEspaco.'/' . $novoNome;
// tenta mover o arquivo para o destino
if(@move_uploaded_file( $arquivo_tmp, $destino))
{
echo "Fotos salvas com sucesso!";
}
else
echo "Permissao!";
}
else
echo ".jpg;*.jpeg;*.gif;";
}
else
{
echo "Você não enviou nenhum arquivo!";
}
}
// /galeria
//Gravando o nome do arquivo tabela do banco de dados
$i_galeria = "INSERT INTO `imagi_new`.`portifolio` ( `titulo`, `chamada`, `cliente`, `destaque`, `imagem`, `data` )
VALUES ( '$_POST[titulo]', '$_POST[chamada]', '$_POST[cliente]', '$_POST[destaque]', '$arq1', now())";
mysql_query($i_galeria) or die (mysql_error());
//Retorno a página de formulário
echo "
<script language='javascript'>
alert('Dados cadastrados com sucesso!');
parent.location='portifolio_adm.php';
</script>
";
?>
`
Probably the problem is in
@mkdir('foto_portifolio/galeria/'.$trataEspaco.'/')
, add the mode, and recursion parameters:mkdir($dir, 0777, true)
. on the use of error control operator@
: http://answall.com/a/50167/13561– Pedro Sanção