[Resolvido] Página não exibe erro nenhum, sendo que existem
Boa tarde!
Estou testando a classe upload.
Copiei a estrutura do exemplo que segue junto ao download e consegui rodar em um ambiente de testes no htdocs.
Então, passei a estrutura para um projeto que está no mesmo htdocs, porém com a funcionalidade de URL amigável implementada.
E no htaccess da função de criação de URL amigável existe uma restrição a arquivos *.PHP, não é possível acessá-los diretamente. O htaccess passa para uma determinada página que faz o tratamento e inclui a respectiva página.
Logo, na action do form que contém o file upload, fica uma URL amigável. Ao submeter o form, eu consigo pegar a variável $_FILES com o respectivo índice do campo, porém ao passá-lo como parâmetro ao construtor da classe upload, simplesmente não executa nada, o objeto não existe, nem nulo fica.
O form é esse:
<?php
// autoload
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<fieldset>
<legend>Simple upload</legend>
<p>Pick up a file to upload, and press 'upload' </p>
<form name="form1" enctype="multipart/form-data" method="post" action="<?php echo URL_BASE?>upload">
<p>
<input type="file" size="32" name="my_field" value="" />
</p>
<p class="button">
<input type="submit" name="submit" value="upload" />
</p>
</form>
</fieldset>
</body>
</html>
E a action:
<?php
error_reporting( E_ALL );
// autoload
$handle = new Upload( $_FILES['my_field'] );
echo $handle->xinforimpola;
if ( $handle->uploaded )
{
$handle->Process( 'test' );
if ( $handle->processed )
{
echo '<fieldset>';
echo ' <legend>file uploaded with success</legend>';
echo ' <p>' . round( filesize( $handle->file_dst_pathname ) / 256 ) / 4 . 'KB</p>';
echo ' link to the file just uploaded: <a href="' . 'DIR' . '/' . $handle->file_dst_name . '">' . $handle->file_dst_name . '</a>';
echo '</fieldset>';
}
else
{
echo '<fieldset>';
echo ' <legend>file not uploaded to the wanted location</legend>';
echo ' Error: ' . $handle->error . '';
echo '</fieldset>';
}
$handle->Clean();
}
else
{
echo '<fieldset>';
echo ' <legend>file not uploaded on the server</legend>';
echo ' Error: ' . $handle->error . '';
echo '</fieldset>';
}
?>
Ao submeter, não aparece erro nenhum, a página fica em branco, nem sobre a propriedade que não existe:
echo $handle->xinforimpola;
Agora, se eu acesso a página de action direto, os erros aparecem, a classe existe, reclama do file upload que não existe e tudo mais.
Alguém já passou por algo parecido? Achei muito útil essa classe, gostaria de aproveitá-la no projeto.
Ou então, alguém sugere outra classe do tipo? Com upload de diversos tipos de arquivos.
Discussão (3)
Carregando comentários...