Bom dia, tranquilo, hehe.
Eu faço assim na minha action.
Code:
FileItem item = (FileItem) input.getValue("arquivo");
if (item.getContentType().equals("image/jpeg")
|| item.getContentType().equals("image/gif")
|| item.getContentType().equals("image/bmp")
|| item.getContentType().equals("image/png")) {
// pega tamaho arquivo
long tamanho = (item.getSize() / 1024);
// Get nome do Arquivo / Endereco
String nome = Utils.semAcento(item.getName());
// cria diretorio
File diretorio = new File(documentos + contrato.getCodigo());
if (!diretorio.exists()) {
diretorio.mkdirs();
}
File arq = new File(diretorio + "/" + nome);
// testa se ja possui um arquivo com mesmo nome no diretorio
if (!arq.exists()) {
if (tamanho < 1000) {
ContratoDocumento cd = new ContratoDocumento();
cd.setId_contrato(contrato.getCodigo());
cd.setNome(nome);
cd.setCaminho(documentos + contrato.getCodigo());
// cd.setArquivo(item.getInputStream());
contratoDocumentoService.insert(cd);
// Copia do arquivo
/*
* File copia = new File(diretorio + File.separator +
* nome); copia.createNewFile(); InputStream in =
* item.getInputStream(); OutputStream out = new
* FileOutputStream(copia); // Transferindo bytes de
* entrada para sa?da byte[] buf = new byte[1024]; int
* len; while ((len = in.read(buf)) > 0) {
* out.write(buf, 0, len); } in.close(); out.close();
*/
// Escrevendo o arquivo
String arquivo = diretorio + File.separator + nome;
item.write(new File(arquivo));
} else {
output.setValue("notice",
" O Arquivo possui tamanho maior que 1MB.");
}
} else {
output
.setValue(
"notice",
"Ja possui um arquivo com o mesmo nome, favor renomear o arquivo que deseja Salvar. ");
}
} else {
output.setValue("notice", " Tipo de Arquivo n?o permitido.");
}
No formulário basta especificar no formulário assim:
Code:
<form enctype="multipart/form-data" id="fm" name="fm" method="post" action="Sua action">
<input type="file" name="arquivo" id="arquivo" />
</form>