Problema Com FileUpload

2 respostas
M

Tenho um código que faz o upload de uma foto,
e guarda numa serta pasta em meu WebConteiner.
Só que n está funcionando o UpLoad,
que até então funcionava nas outras versões do TomCat.
No 1º “If” ele diz “Method is deprecated”,
só q n acho nenhum outro jeito de fazer isso…
vai o código a seguir!


protected void doPost(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException {

/** verifica se o usuario pode acessar a pagina <em>/

if(!AEControl.checkUser(req,res,false)){

return;

}

User user = (User) req.getSession(false).getAttribute(“user”);

String foto = null;

String comentario = null;

int integrar = 0;

boolean temArq = false;

FileItemFactory factory = new DiskFileItemFactory();

if(ServletFileUpload.isMultipartContent(req)){    <— Method Deprecated

ServletFileUpload fu = new ServletFileUpload(factory);

fu.setHeaderEncoding(“ISO-8859-1”);

fu.setSizeMax(AEControl.getMaxTransferSize());

try{

List itens = fu.parseRequest(req);

Iterator i = itens.iterator();

FileItem fi = null;

while (i.hasNext()){

fi = (FileItem) i.next();

/</em>* Começa a pegar as informações do formulario */

if (fi.isFormField()){

String name = fi.getFieldName();

if (name.equals(comentario))

comentario = AEControl.convertUTFtoLATIN(fi.getString());

else if (name.equals(integrar))

integrar = Integer.parseInt(fi.getString());
}else{
					String fileName = AEControl.convertUTFtoLATIN(fi.getName());
					fileName = fileName.substring(fileName.lastIndexOf("\\") + 1);
					String formato = fileName.substring(fileName.lastIndexOf(".") + 1);
					fileName = "foto." + formato;
					long tamanho = fi.getSize();
					if (tamanho > 0){
						temArq = true;
						String repository = AEControl.getRepository().replaceAll("/","//");
						String localizacao = "..//webapps"+ repository + "perfil//" + user.getId()+ "//";
						/** Grava o arquivo */
						try{
							File f = new File(localizacao);
							if(!f.exists()){
								f.mkdirs();
							}
							localizacao +=fileName; 
							f = new File(localizacao);
							fi.write(f);
							foto = AEControl.getRepository() + "perfil/" + user.getId() + "/";
							foto+= fileName;
						}catch(Exception ex){
							/** adiciona o erro a lista de logs do AEControl
							 * @see aec.admin.AEControl
							 */
							AEControl.addLog("Exception: " + ex);
							temArq = false;
							ex.printStackTrace();
						}
					}
				}
			}
		}	
		catch(FileUploadException ex){
			/** adiciona o erro a lista de logs do AEControl
			 * @see aec.admin.AEControl
			 */
			AEControl.addLog("Exception: " + ex+ "<br>CLasse: " +this.getClass());
			temArq = false;
			System.out.println("FileUploadException: " + ex);
		}
	}

é a parte principal…
depois tem a conecção com banco…
mais eh ai q n tá funcionando! =/
Alguem pode me ajudar?

2 Respostas

_Renatu

Estranho, procurei na documentação desta classe, e lá não diz que o método é deprecated…

Você tem certeza?

E seu código tem que rodar mesmo com métodos deprecated.

M

ele roda…
“roda”
n funciona…
mais n da erros!
estranho q no tomcat 5.0 funciona!
no 5.20 n funciona…

Criado 1 de fevereiro de 2007
Ultima resposta 1 de fev. de 2007
Respostas 2
Participantes 2