O componente Transferência de arquivos
fornece um campo de entrada e um botão de exploração que abre um diálogo de seletor de arquivos no sistema local, permitindo que o usuário selecione um arquivo ou digite o nome do arquivo no campo de entrada. Quando a página é enviada, uma cópia do conteúdo do arquivo é enviada ao aplicativo da Web. Este componente é útil para reunir arquivos de texto, arquivos de imagem e outros dados. O conteúdo do arquivo transferido é armazenado juntamente com algumas informações sobre tal arquivo, incluindo o nome, o tamanho e o tipo MIME (como texto/simples ou imagem/jpeg).
O componente é semelhante ao elemento HTML <input type="file">.
width à propriedade style menor do que a configuração na propriedade columns, o Internet Explorer observa somente a configuração de width, enquanto que o navegador Mozilla a ignora e define a largura de acordo com o número de caracteres na propriedade columns.O componente Transferência de arquivos usa um filtro, um objeto com.sun.webui.jsf.util.UploadFilter que é configurado por você no descritor de implantação do aplicativo da Web. O UploadFilter usa o pacote fileupload comum do Apache. Talvez você precise alterar estas configurações nos seguintes casos:
sizeThreshold da entrada do filtro UploadFilter no arquivo web.xml da aplicação Web, conforme descrito abaixo.maxSize da entrada do filtro UploadFilter no arquivo web.xml da aplicação Web, conforme descrito abaixo.
maxSize indica que não há limite de tamanho para o arquivo. Por razões de segurança, não é recomendável configurar o parâmetro com um valor negativo. Por exemplo, se você permitir tamanhos de arquivo ilimitados, um usuário maldoso poderia realizar um ataque de negação de serviço (denial of service) no seu site usando arquivos extremamente grandes.UploadFilter no arquivo web.xml: maxSize e sizeThreshold.O conteúdo do arquivo transferido, juntamente com algumas informações sobre ele, é armazenado em uma instância de com.sun.webui.jsf.model.UploadedFile. Com o uso deste objeto, você pode obter o conteúdo do arquivo como String ou gravar o conteúdo no disco, bem como obter propriedades como o nome e o tamanho do arquivo. Com o intuito de economizar memória, o conteúdo e os dados do arquivo estão disponíveis somente durante a solicitação HTTP na qual o arquivo foi transferido. Para acessar o conteúdo do arquivo transferido, vincule a propriedade uploadedFile a uma propriedade de bean do tipo com.sun.webui.jsf.model.UploadedFile. Processe o arquivo com um método setter ou método de ação.
A interface de UploadedFile possui métodos para obter o nome e o tamanho do arquivo, determinar seu tipo MIME (como text/plain ou image/jpeg), obter seu conteúdo como bytes ou como uma String e gravar o conteúdo no disco. Além disso, se tiver definido a preservePath do componente Transferência de arquivos, você pode obter tal preserved path da propriedade de bean UploadedFile chamando o método getClientFilePath(). Para saber mais, no editor Java, clique com o botão direito do mouse em UploadedFile em uma instrução de declaração e escolha Mostrar Javadoc no menu pop-up.
validate do componente para que você possa inserir o código para validar o valor do componente. do componente para que você possa inserir o código que é executado quando o valor deste componente sofrer alterações. Este método é executado quando você seleciona Enviar automaticamente ao alterar no menu pop-up do componente, que envia a página quando o valor do componente for alterado. Esta técnica é útil se o componente fizer parte de um formulário virtual.common_timeoutSubmitForm(this.form, 'id-do-componente');. Em tempo de execução, este código faz com que o formulário seja enviado automaticamente se o usuário alterar o valor do componente. Depois de o formulário ter sido enviado, ocorre a conversão e a validação no servidor, quaisquer métodos ouvintes de alteração de valor são executados e, em seguida, a página é reexibida.
Um componente configurado como Enviar automaticamente ao alterar pode usar formulários virtuais para limitar os campos de entrada processados quando o formulário é enviado. Se o componente de envio automático for definido para enviar um formulário virtual, somente os participantes de tal formulário virtual serão processados quando o envio automático ocorrer.
text do componente a um objeto ou a um provedor de dados. Para obter mais informações, consulte Caixa de diálogo Vincular aos dados.uploadedFile a uma propriedade de bean do tipo com.sun.webui.jsf.model.UploadedFile.