Struts2 Upload de Imagens
26/10/2011
0
Ricardo Silva.
Posts
27/10/2011
Robson Teixeira
09/11/2011
Dyego Carmo
Qualquer coisa estou a disposição :)
Se sim , poderia fechar o chamado ?
05/12/2011
Ricardo Silva.
Estou usando struts 2 annotations para fazer upload de imagem, funciona perfeitamente gostaria de implementar o progresso bar teria como ajudar. Segue código abaixo
import br.com.tularte.modelo.Cor; import java.io.File; import javax.servlet.http.HttpServletRequest; import org.apache.commons.io.FileUtils; import org.apache.struts2.interceptor.ServletRequestAware; import com.opensymphony.xwork2.ActionSupport; import java.awt.Image; import javax.swing.ImageIcon; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.InterceptorRef; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; @ParentPackage(default) public class FileUploadAction extends ActionSupport implements ServletRequestAware { private static final long serialVersionUID = 1L; private File userImage; private String userImageContentType; private String userImageFileName; private Cor cor; private HttpServletRequest servletRequest; @Action(value = userImage, results = { @Result(name = ok, location = /admin/inserircor.jsp), @Result(name = input, location = /admin/inserircor.jsp) }, interceptorRefs = { @InterceptorRef(seguranca), @InterceptorRef(fileUploadStack) }) @Override public String execute() { try { if (hasFieldErrors() == false) { String filePath = servletRequest.getRealPath(/imagens/cor) + /; System.out.println(Server path: + filePath); Image inImage = new ImageIcon(userImage.getPath()).getImage(); if ((inImage.getWidth(null) != 160) || (inImage.getHeight(null) != 150)) { addActionError(Tamanho da Imagem maior que o permitido 160X150.); return input; } else { File fileToCreate = new File(filePath, this.userImageFileName); FileUtils.copyFile(this.userImage, fileToCreate); cor.setCorimagem(userImageFileName); return ok; } } return input; } catch (Exception e) { e.printStackTrace(); addActionError(e.getMessage()); return input; } } public File getUserImage() { return userImage; } public void setUserImage(File userImage) { this.userImage = userImage; } public String getUserImageContentType() { return userImageContentType; } public void setUserImageContentType(String userImageContentType) { this.userImageContentType = userImageContentType; } public String getUserImageFileName() { return userImageFileName; } public void setUserImageFileName(String userImageFileName) { this.userImageFileName = userImageFileName; } public void setServletRequest(HttpServletRequest servletRequest) { this.servletRequest = servletRequest; } public Cor getCor() { return cor; } public void setCor(Cor cor) { this.cor = cor; } }
Estou usando java para verificar o tamanho da imagem e interceptor para verificar o tamanho em bytes e tipo de formato. Uma pergunta teria como fazer essa requisicao via ajax? Motivo, o uplod submit fica no fim do formulario necessitando usar a barra de rolagem para fazer o upload e assim que dar o refresh na tela a barra de rolagem retorna para inicio, gostaria que ficase no lugar onde foi efetuado o submit.
Muito Obrigado
Clique aqui para fazer login e interagir na Comunidade :)