Eu tinha um código de upload de ficheiros funcionando, mas não está funcionando mais não sei porquê.
Mas o que eu sei é que a variável do formulário do tipo ficheiro não está sendo passada como deve ser. O campo chama-se txtFoto, e se por código PHP tentar aceder ao conteúdo desse campo dá-me sempre erro porque a variável não está definida, então o que pensei?Fiz um código para me mostrar todas as variáveis que estão sendo passadas pelo formulário, e aparecem-me lá todos os campos menos aquele, se eu tirar o enctype="multipart/form-data" do formulário, o campo já aparece, mas como é óbvio assim não dá para fazer o upload.
Pergunta
TrymBeast
Olá!
Eu tinha um código de upload de ficheiros funcionando, mas não está funcionando mais não sei porquê.
Mas o que eu sei é que a variável do formulário do tipo ficheiro não está sendo passada como deve ser. O campo chama-se txtFoto, e se por código PHP tentar aceder ao conteúdo desse campo dá-me sempre erro porque a variável não está definida, então o que pensei?Fiz um código para me mostrar todas as variáveis que estão sendo passadas pelo formulário, e aparecem-me lá todos os campos menos aquele, se eu tirar o enctype="multipart/form-data" do formulário, o campo já aparece, mas como é óbvio assim não dá para fazer o upload.
Código do Formulário
<form action="<?=nome_ficheiro()?>?admin=adicionar_biografia_bd" method="post" enctype="multipart/form-data"> <table class="form"> <tr> <td> <center> <table class="dados"> <tr> <td>Ano:</td> <td> <select name="lstAno"> <? for($i = 2004; $i <= data("Y"); $i++) { if($i == data("Y")) echo "<option selected>" . $i . "</option>"; else echo "<option>" . $i . "</option>"; } ?> </select> </td> </tr> <tr> <td>Titulo:</td> <td><input type="text" name="txtTitulo" size="40"></td> </tr> <tr> <td>Biografia:</td> <td><textarea name="txtBiografia" cols="30" rows="5"></textarea></td> </tr> <tr> <td>Foto:</td> <td><input name="txtFoto" type="file" size="40"></td> </tr> <tr> <td>Língua:</td> <td> <select name="lstLingua"> <? languages('input'); ?> </select> </td> </tr> </table> </center> <br> <input name="cmdAdicionar" type="submit" value="Adicionar"> <input name="cmdCancelar" type="button" value="Cancelar" onClick="javascript: redirect('<?=nome_ficheiro()?>?admin=listar_biografias')"> </td> </tr> </table> </form>Código de Upload antecipado pela listagem das variáveis passadas pelo método POSTforeach ($_POST as $chave => $i) echo $chave; if(!empty($_FILES['txtFoto']['name'])) { @move_uploaded_file($_FILES['txtFoto']['tmp_name'], $_FILES['txtFoto']['name']) or mostrar_erro("Não foi possível copiar a foto"); //Abre a imagem e copia o conteúdo para uma variável $conteudoImagem = addslashes(fread(fopen($_FILES['txtFoto']['name'], "r"), filesize($_FILES['txtFoto']['name']))); //Apagar foto do servidor unlink($_FILES['txtFoto']['name']); $SQL = "INSERT INTO " . DB_TABELA_BIOGRAFIAS . " (ano,titulo,biografia,foto,lingua) VALUES ('" . $_POST['lstAno'] . "','" . $_POST['txtTitulo'] . "','" . $_POST['txtBiografia'] . "','" . $conteudoImagem . "','" . $_POST['lstLingua'] . "')"; }Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.