File Upload

3 respostas
java
R

Estou fazendo um File upload em java, e estou tentando salvar em um txt o nome do arquivo que foi feito upload, e a data do upload… Porem sou iniciante em java e estou com dificuldade ao passar o nome do arquivo, alguém pode dar uma olhada no meu código

package com.chilyfacts.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class FileUploadHandler extends HttpServlet {
    private static final long serialVersionUID = 1 ;
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        doPost(request, response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String file_name = null;
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        boolean isMultipartContent = ServletFileUpload.isMultipartContent(request);
        if (!isMultipartContent) {
            return;
        }
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        try {
            List < FileItem > fields = upload.parseRequest(request);
            Iterator < FileItem > it = fields.iterator();
            if (!it.hasNext()) {
                return;
            }
            while (it.hasNext()) {
                FileItem fileItem = it.next();
                boolean isFormField = fileItem.isFormField();
                if (isFormField) {
                    if (file_name == null) {
                        if (fileItem.getFieldName().equals("file_name")) {
                        	file_name = fileItem.getString();
                        }
                    }
                } else {
                    if (fileItem.getSize() > 0) {
                         fileItem.write(new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 9.0_Tomcat90\\webapps\\Fileup" + fileItem.getName()));
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            out.println("<script type='text/javascript'>");
            out.println("window.location.href='index.jsp?filename="+file_name+"'");
            out.println("</script>");
            out.close();
        }
    }
    
    public static void main(String[] args) {
    	
		DateFormat dateFormat = new SimpleDateFormat("DD/MM/YYYY HH:mm:ss");
        try {
            
			// Conteudo
            String content = "data:" + new Date();

            // Cria arquivo
            File file = new File("teste.txt");

            // Se o arquivo nao existir, ele gera
            if (!file.exists()) {
                file.createNewFile();
            }

            // Prepara para escrever no arquivo
            FileWriter fw = new FileWriter(file, true);
            BufferedWriter bw = new BufferedWriter(fw);
            
            // Escreve e fecha arquivo
            bw.write(content);
            bw.close();
            
            // Le o arquivo
            FileReader ler = new FileReader("teste.txt");
            BufferedReader reader = new BufferedReader(ler);  
            String linha;
            while( (linha = reader.readLine()) != null ){
                System.out.println(linha);
            }

            // Imprime confirmacao
            System.out.println("Feito !");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3 Respostas

R

// Conteudo
String content = “data:” + new Date();

Onde passo o nome do arquivo no txt… só não sei qual parametro devo passar antes do data para pegar o nome do arquivo

thimor
String content = "data:\t" + new Date() + "\tnome do arquivo:\t" + file.getName();

a ordem de quem vem primeiro vc quem decide. se for para pegar o caminho completo voce vai usar o

file.getParent() + file.separator + file.getName();
R

Vou tentar amigo, obrigado pela ajuda !

Criado 22 de abril de 2020
Ultima resposta 28 de abr. de 2020
Respostas 3
Participantes 2