1~

Minter Coder's Blog

8-Jsp & Servlet File/Image Yükleme

2021-01-16

Arkadaşlar merhabalar bu dersimizde servlette dosya yüklemeyi göreceğiz.

Servlette file/Image yüklemek için öncelikle jar dosyalarımızı indirmemiz gerekiyor.Maven repositoryiden.

https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.4

https://mvnrepository.com/artifact/commons-io/commons-io/2.2

jar dosyalarını indirdikten sonra WebContent -> WEB-INF -> lib altına atıp her bir jar dosyasına sağ tıklayıp build path -> add build path diyoruz.

Ve geçiyoruz dosya yüklemeye ...

ImageUpload.java adlı bir servlet file oluşturdum içeriği şöyle

package com.kerem;
 
import java.io.File;
import java.io.IOException;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
 
@WebServlet("/ImageUpload")
public class ImageUpload extends HttpServlet {
private static final long serialVersionUID = 1L;
 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
try {
List<FileItem> images = upload.parseRequest(request);
for(FileItem image : images) {
System.out.println(image.getName());
try {
image.write(new File("/root/eclipse-workspace/Servlet/WebContent/images/"+image.getName()));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
 
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
 
}
 
}

WebContent altına oluşturduğum index.jsp file şöyle ;

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="ImageUpload" method="post" enctype="multipart/form-data">
select images <input type="file" name="files" multiple />
<input type="submit" value="upload" />
 
</form>
</body>
</html> 

 Ve arkadaşlar WebContent altına images adlı bir klasör oluşturdum 3 adet de foto seçtim ctrl'ye basılı tutarak yukarıda index.jsp de gördülüğü gibi enctype ile çok bölümlü bir form olacak yani images filan yüklenebilecek , multiple ile de birden fazla dosya seçebileceğimi söylüyorum.

Arkadaşlar dosyaları upload butonuna bastıktan sonra images klasörüne sağ tıklayıp refresh dedikten sonra images files geldi.

Bir sonraki dersimizde görüşürüz :)