Upload de Arquivos para a raiz da aplicação web

0 respostas
G

Boa Tarde…

Estou com um problema ao fazer upload de arquivos para minha aplicação…não consigo salvar o arquivo dentro do meu projeto, segue meu código

String nomeParametro = "file";
            String id = request.getParameter(nomeParametro);

            File dir = new File(getServletContext().getRealPath("/") + "arquivos");
            out.println(dir);

            String contentType = request.getContentType();

            if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) {

                DataInputStream in = new DataInputStream(request.getInputStream());

                int formDataLength = request.getContentLength();
                byte dataBytes[] = new byte[formDataLength];
                int byteRead = 0;
                int totalBytesRead = 0;

                while (totalBytesRead < formDataLength) {

                    byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
                    totalBytesRead += byteRead;
                }

                String file = new String(dataBytes);
                String saveFile = file.substring(file.indexOf("filename=\"") + 10);

                saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
                saveFile = saveFile.substring(saveFile.lastIndexOf("\") + 1, saveFile.indexOf("\""));

                int lastIndex = contentType.lastIndexOf("=");
                String boundary = contentType.substring(lastIndex + 1, contentType.length());

                int pos; 

                pos = file.indexOf("filename=\"");
                pos = file.indexOf("\n", pos) + 1;
                pos = file.indexOf("\n", pos) + 1;
                pos = file.indexOf("\n", pos) + 1;

                int boundaryLocation = file.indexOf(boundary, pos) - 4;
                int startPos = ((file.substring(0, pos)).getBytes()).length;
                int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;

                String filepath = dir + "/" + saveFile;

                FileOutputStream fileOut = new FileOutputStream(filepath);
                fileOut.write(dataBytes, startPos, (endPos - startPos));
                fileOut.flush();
                fileOut.close();
            }

como faço para salvar na pasta da raiz da aplicação?

Criado 23 de agosto de 2011
Respostas 0
Participantes 1