Last active
April 11, 2025 13:59
-
-
Save alexandreaquiles/8564914 to your computer and use it in GitHub Desktop.
Servlet que faz upload de arquivos no diretório configurado no init-param "diretorio", utilizando a biblioteca commons-fileupload.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<body> | |
<form action="upload" method="post" enctype="multipart/form-data"> | |
<input type="text" name="texto"> | |
<input type="file" name="arquivo"> | |
<input type="submit" value="Upload"> | |
</form> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Baixar os seguintes arquivos e colocar em WEB-INF\lib\ | |
http://repo1.maven.org/maven2/commons-fileupload/commons-fileupload/1.3/commons-fileupload-1.3.jar | |
http://repo1.maven.org/maven2/commons-io/commons-io/2.2/commons-io-2.2.jar |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package upload; | |
import java.io.File; | |
import java.io.IOException; | |
import java.io.PrintWriter; | |
import java.util.Iterator; | |
import java.util.List; | |
import javax.servlet.ServletConfig; | |
import javax.servlet.ServletException; | |
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.disk.DiskFileItemFactory; | |
import org.apache.commons.fileupload.servlet.ServletFileUpload; | |
public class UploadArquivoServlet extends HttpServlet { | |
private File diretorio; | |
@Override | |
public void init(ServletConfig config) throws ServletException { | |
super.init(config); | |
String path = config.getInitParameter("diretorio"); | |
diretorio = new File(path); | |
diretorio.mkdirs(); | |
} | |
@Override | |
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { | |
PrintWriter out = response.getWriter(); | |
boolean isMultipart = ServletFileUpload.isMultipartContent(request); | |
if (!isMultipart) { | |
out.println("<h1>Voce não enviou um arquivo!</h1>"); | |
return; | |
} | |
for (String elemento : request.getParameterMap().keySet()) { | |
System.out.println(elemento); | |
} | |
DiskFileItemFactory factory = new DiskFileItemFactory(); | |
factory.setRepository(diretorio); | |
ServletFileUpload upload = new ServletFileUpload(factory); | |
try { | |
List<FileItem> items = upload.parseRequest(request); | |
for (FileItem item : items ) { | |
if (!item.isFormField()) { | |
processUploadedFile(item); | |
} else { | |
//para inputs que nao sao 'file', isFormField() é verdadeiro | |
String nomeDoCampo = item.getFieldName(); | |
String valorDoCampo = item.getString(); | |
System.out.println(nomeDoCampo + ": " + valorDoCampo); | |
} | |
} | |
out.println("<h1>Arquivo gravado!</h1>"); | |
} catch (Exception e) { | |
out.println("<h1>Erro ao escrever no arquivo!</h1>"); | |
return; | |
} | |
} | |
private void processUploadedFile(FileItem item) throws Exception { | |
String fileName = item.getName(); | |
File uploadedFile = new File(diretorio, fileName); | |
item.write(uploadedFile); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> | |
<servlet> | |
<servlet-name>upload</servlet-name> | |
<servlet-class>upload.UploadArquivoServlet</servlet-class> | |
<init-param> | |
<param-name>diretorio</param-name> | |
<param-value>D:/Alexandre_Silva/uploads</param-value> | |
</init-param> | |
</servlet> | |
<servlet-mapping> | |
<servlet-name>upload</servlet-name> | |
<url-pattern>/upload</url-pattern> | |
</servlet-mapping> | |
</web-app> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment