Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ola boa noite estou tentando criar um arquivo de upload de imagem, que cria uma nova pasta para as imagens ele recupera o id da galeria e envia deveria enviar as imagens para pasta o que não está ocorrendo.
Detalhes a pasta está sendo criada, e a imagem está sendo enviada mas não está upando para pasta criada, vou utilizar dropzone.
Segue arquivo para que possam dar uma olhada agradeço desda já a ajuda.
<?php
$id = $_REQUEST['id'];
$ds = DIRECTORY_SEPARATOR; //1
$storeFolder = '../ex5/galeria/'.$id.'/'; //2
if(!file_exists($storeFolder)) {
mkdir('../ex5/galeria/'.$id.'/', 0777, true);
}
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name']; //3
$targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; //4
$targetFile = $targetPath. $_FILES['file']['name']; //5
move_uploaded_file($tempFile,$targetFile); //6
}
?>>
Olá. Fiz pequenas alterações (não testadas). Vê se ajuda:
<?php
$id = $_REQUEST['id'];
$ds = DIRECTORY_SEPARATOR; //1
$storeFolder = '../ex5/galeria/'.$id.'/'; //2
if (!file_exists($storeFolder))
{
mkdir('../ex5/galeria/'.$id.'/', 0777, true);
}
if (!empty($_FILES)) if ($_FILES['file']['error'] > 0)
{
echo "Erro: " . $_FILES['file']['error'] . "<br />";
}
else
{
$tempFile = $_FILES['file']['tmp_name']; //3
$targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; //4
$targetFile = $targetPath . $_FILES['file']['name']; //5
if (move_uploaded_file($tempFile, $targetFile))
{
echo "Ficheiro " . basename($_FILES['file']['name']) . " enviado com sucesso.<br />";
} //6
else
{
echo "Erro ao enviar. Tente novamente."
}
}
}
Agradeço sua ajuda amigo, mas o problema persiste mesmo com as modificações sugeridas, a imagem está movendo para fora da pasta criada.
Dá um echo em $targetPath e você vai ver o problema... veja que no início você está usando caminho relativos:
$storeFolder = '../ex5/galeria/'.$id.'/'; //2
Ai depois você tenta passar isso para absoluto:
$targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds; //4
Só que a saída disto vai ser algo do tipo:
a/b/c//../ex5/galeria/123/
Ola coloquei o echo em $targetPath e não debugou e nem apareceu o caminho, mas valeu obrigado.
Coloca o echo de $targetPath a seguir à mensagem "Erro ao enviar. Tente novamente." dentro do último else.
Olá. Fiz pequenas alterações (não testadas). Vê se ajuda:
$ds = DIRECTORY_SEPARATOR; //1$storeFolder = '../ex5/galeria/'.$id.'/'; //2
if (!file_exists($storeFolder))
{
{