rds2
Julho 11, 2012, 8:52am
#41
" Não consegui acessar o uploadfy é bloqueado aki vou baixar depois mas por enquanto te certo cara ?
Então meu form esta assim
<form action="<c:url value="/upload"/>" enctype="multipart/form-data" method="post">
<input type="file" name="arquivos[]" multiple="multiple"/>
<input type="submit"/>
</form><br/>
O controller ta assim
@Post @Path("/upload")
public void upload(List<UploadedFile> arquivos){
for(UploadedFile uf:arquivos){
System.err.println(">>>>>>>>>>>>>>> "+uf.getFileName());
}
Ai o uploadfy faz a separação de cada arquivo
vc acha que se eu seguir esse topico http://www.guj.com.br/java/206525-upload-com-vraptor3–uploadify-resolvido/4 é o que eu preciso
acho que é sim…
no uploadfy dá pra vc registrar callbacks pra qdo um upload terminar, daí vc pode pegar o nome do arquivo e mostrar em algum lugar.
rds2
Julho 11, 2012, 9:42am
#43
Lucas desculpa cara eu sou novato, ( pra não dizer outra coisa) ja baixei o uploadfy ,
<%@ include file="/cabecalho.jsp" %>
<script type="text/javascript" src="<c:url value="/javascript/jquery.uploadify-3.1.js" />" type="text/javascript" ></script>
<script type="text/javascript" src="<c:url value="/javascript/jquery.uploadify-3.1.min.js" />" type="text/javascript" ></script>
<script type="text/javascript">
$(function() {
$("#arquivos").uploadify({
"uploader" : '${pageContext.request.contextPath}/uploadify/uploadify.swf', //onde coloco esse swf?
'script' : '${pageContext.request.contextPath}/upload', // aki seria a url da minha action?
'cancelImg' : '${pageContext.request.contextPath}/uploadify/cancel.png', // //onde coloco esse arquivo?
'buttonText' : 'Selecionar arquivos',
'folder' : '${pageContext.request.contextPath}/uploads', // o que seria essa linha
'multi' : true,
'auto' : false
});
$("#envio").click(function(){
$("#arquivos").uploadifyUpload();
});
});
</script>
e o form assim
<div>
<c:if test="${not empty error}">${error}<br/><br/></c:if>
<form action="<c:url value="/upload"/>" enctype="multipart/form-data" method="post">
<input type="file" name="arquivos[]" multiple="multiple"/>
<button id="envio">Enviar</button>
</form><br/>
</div>
meu controller ta assim …
o nome da classe é IndexController
@Post @Path("/upload")
public void upload(UploadedFile arquivos){
System.err.println(">>>>>>>>>>>>>>> "+arquivos.getFileName());
}
}
nesse caso ele vai fazer upload arquivo por arquivo, então vc pode mudar o nome do input pra “arquivo” e o nome do UploadedFile também.
melhor forma de descobrir como se mexe com ele, é olhando o site:
http://www.uploadify.com/
http://www.uploadify.com/documentation/
rds2
Julho 11, 2012, 2:42pm
#45
Lucas como eu faço para meu form enviar a lista de arquivos para meu controller, esta chegando null!!
Esse é meu form
[code]
Arquivos
<tr><td><c:out value="arquivo"></c:out></td></tr>
</c:forEach>
<input type="submit"/>
[/code]
Meu controller
@Resource
public class TransmitirArquivosController {
private final Validator validator;
private final Result result;
private final Arquivo arquivo;
public TransmitirArquivosController(Validator validator, Result result, Arquivo arquivo) {
this.result = result;
this.arquivo = arquivo;
this.validator = validator;
}
@Get @Path("/arquivos")
public void transmitirArquivos() {
}
@Post @Path("transmitir/upload")
public void upload(List<UploadedFile> arquivos) throws IOException {
System.out.println("passou aki!");
validator.onErrorUse(Results.page()).redirectTo("/erro.jsp");
arquivo.salva(arquivos);
result.redirectTo("/result.jsp");
}
}
Minha classe
@Component
public class Arquivo {
private List<Arquivo>arquivos;
public List<Arquivo> getArquivos() {
return arquivos;
}
public void setArquivos(List<Arquivo> arquivos) {
this.arquivos = arquivos;
}
private File dirArquivos;
public Arquivo(ServletContext context) {
//String caminhoImagens = context.getRealPath("C:/Imagens");
dirArquivos = new File("D:/arquivos");
dirArquivos.mkdir();
}
public void salva(List<UploadedFile> arquivos) throws IOException {
for (UploadedFile arquivo : arquivos) {
File destino = new File(dirArquivos, arquivo.getFileName()+".txt");
try {
destino.createNewFile();
IOUtils.copyLarge(arquivo.getFile(), new FileOutputStream(destino));
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new FileNotFoundException("Arquivo não encontrado!");
} catch (IOException e) {
e.printStackTrace();
throw new IOException("Não foi possivel enviar o arquivo!");
}
System.out.println("Passa por aki!!!");
arquivo.getFile().close();
}
}
}
se não funcionou assim, não sei se vai funcionar… use o uploadify, que manda de um em um.
rds2
Julho 11, 2012, 3:24pm
#47
Era o jar da aplicação ja atualizei aki!! Obrigado meu amigo!!
rds2
Julho 12, 2012, 7:26am
#48
Lucas bom dia ,
agora fico redondo meu projeto :lol: vlw mesmo!
So tenho uma duvida no meu metodo salva:
1° no metodo salva , o metodo “copyLarge()” no é para possibilitar o envio de arquivos maiores que 2gb?
porque estaou tentando fazer upload de arquivos .zip com tamanho de “362MB” e esta me renderizando a seguinte mensagem;
" org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (20411407) exceeds the configured maximum (2097152) "
como posso mudar isso?
public void salva(List<UploadedFile> arquivos) throws IOException {
for (UploadedFile arquivo : arquivos) {
File destino = new File(dirArquivos, arquivo.getFileName());
try {
destino.createNewFile();
IOUtils.copyLarge(arquivo.getFile(), new FileOutputStream(destino));
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new FileNotFoundException("Arquivo não encontrado!");
} catch (IOException e) {
e.printStackTrace();
throw new IOException("Não foi possivel enviar o arquivo!");
}
System.out.println("Passa por aki!!!");
arquivo.getFile().close();
}
}
Lucas
Quanto o array ou a lista contém apenas um elemento o parâmetro vem vazio. Já vi em outra thread que este era um bug do VRaptor.
Isto foi corrigido? Lembro que você sugeriu uma abordagem para tal. Isto foi implementado?
Utilizar um sufixo “_array”, “Array”, “_list” ou “List” ficaria feio. Usar “[]” iria se resumir a Arrays.
O que você sugere?