Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
tenho um script PHP para fazer upload de imagens. Aquilo que adicionei foi um campo "select" ao formulário. Conforme a escolha da opção, ao fazer upload a imagem será guardada para a respectiva pasta.
Também adicionei um ciclo "do while", isto irá mudar o nome para img_1.jpg, mas quando fizer outros upload irá continuar com img_2.jpg, img_3.jpg
, img_4.jpg, etc... É aquilo que quero exactamente. O que é estranho é que se eu guardar na própria pasta "./" aquilo faz exactamente certo, mas se eu fizer noutras pastas, como tá no cod "galeria_ff/", não funciona. Faz o primeiro upload "img_1.jpg", mas se fizer outro a seguir este irá sempre substituir pela vez de continuar com img_2.jpg, img_3.jpg...
Não estou a perceber o porquê. Podem me ajudar por favor?
<?php
//Extensões permitidas
$ext = array("gif","jpg","png");
//Quant. de campos do tipo FILE
$campos = 1;
//Formulário
?>
<form method="post" action="<?php $PHP_SELF ?>" enctype="multipart/form-data">
<?php
echo ' Imagem: <input type="file" name="file[]">
<br /><br />
Categoria:
<select name="categoria">
<option selected="selected" value="ff">ff</option>
<option value="kh">kh</option>
<option value="outros">Outros</option>
</select><br /><br />
<input type="submit" name="submit" value=" OK ">
</form>';
//se for necessário poderei adicionar mais Arquivo: <input type="file" name="file[]">
//Se for enviado
if (isset($_POST['submit'])) {
//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];
//Contar arquivos enviados
$cont=0;
//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){
//Pegando o nome
$name = $f_name[$i];
//Verificando se o campo contem arquivo
if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
if ($cont==0) {
echo "<b>Imagem enviada:
</b>";
}
echo $name." - ";
//adicionar mais 1 ao nome da img
$f = 0;
do {
$f++;
$filename = 'img_'.$f.'.jpg';
}
while(file_exists($filename));
//Movendo arquivo's do upload
if ($_POST['categoria'] == 'ff')
{
$dir = "galeria_ff/";
$up = move_uploaded_file($f_tmp[$i], $dir.$filename);
}
elseif ($_POST['categoria'] == 'kh')
{
$dir = "galeria_kh/";
$up = move_uploaded_file($f_tmp[$i], $dir.$filename);
}
elseif ($_POST['categoria'] == 'outros')
{
$dir = "galeria_outros/";
$up = move_uploaded_file($f_tmp[$i], $dir.$filename);
}
//Status
if ($up==true):
echo "<i>Enviado!</i>";
$cont++;
else:
echo "<i>Falhou!</i>";
endif;
echo "
";
}
}
}
?>Carregando comentários...