Oi,
Estou fazendo upload usando struts. Segundo o exemplo http://www.roseindia.net/struts/strutsfileuploadandsave.shtml , funciona.
O problema é que não criamos uma classe para o form como proposto, na aplicação declaramos tudo usando o DynaValidatorForm no struts-config.xml.
dessa forma:
<form-bean name="FileUploadForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="theFile" type="java.lang.?"/>
</form-bean>
A dúvida é a seguinte: que type é declarado? Consultei a documentação e não tem nenhum tipo ligado diretamente ao FormFile. Só encontrei integer, string, byte…
Tentei usar algum desses e fazer a conversão no método, mas não funciona. As informações se perdem. Só se conserva se for object, mas não existe java.lang.Object…
O método no action ficou assim, só que dá erro devido ao FormFile.
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
DynaActionForm myForm = (DynaActionForm)form;
if(form!=null){
FormFile myFile = (FormFile) myForm.get("theFile");
// aqui dah erro
if(myFile!=null){
//String contentType = myFile.getContentType();
String fileName = myFile.getFileName();
//byte[] fileData = myFile.getFileData();
String filePath = "C:\\java\\workspace\\pibic2\\site\\upload";
if(!fileName.equals("")){
File fileToCreate = new File(filePath, fileName);
if(!fileToCreate.exists()){
FileOutputStream fileOutStream = new FileOutputStream(fileToCreate);
fileOutStream.write(myFile.getFileData());
fileOutStream.flush();
fileOutStream.close();
}
}
request.setAttribute("fileName",fileName);
request.setAttribute("myFile",myFile);
}
}
return mapping.findForward("success");
}
Alguém pode ajudar? Já passou por uma situação parecida?
(Vi um post aqui mesmo que usava DynaValidatorFom também, mas não tinha a parte do Struts.)
Obrigada.