JSP Dosya Yükleme Örneği

Java Server Page
javb

JavaJava Server Pages Dersleri‘ne devam ediyoruz.

Bu yazımızda JSP sayfamız üzerinden bir dosya yükleme işlemi nasıl yapılır bakalım.

Senaryo aynı. Bir butonumuz olacak Dosya seçilecek ve ardından dosya yükleme işlemine geçilecek. Yükleme işlemi bizim serveramıza olacak. İlk önce HTML bir sayfa yapacağız ardından JSP tarafında Java Dosya yükleme kodlarına benzer hatta aynı işlemi yaparak dosyamızı yükleyeceğiz.

<html>
    <head>
    <title>Burak Kutbay JSP Dersleri/title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div>TODO write content</div>
<FORM ENCTYPE="multipart/form-data" ACTION="dosyayukle.jsp" METHOD=POST>

    <b>Dosya Seçin</b>
    <INPUT NAME="file" TYPE="file">

    <input type="submit" value="Dosyayı Gönder">

</FORM>
</body>
</html>

Şimdi Java Server Pages kısmına dosyayukle.jsp kısmına geçelim. Bu kısımda alınan dosyayı byte, byte  yükleme işlemi yapılmakta toplam byte sayısına ulaşıldığında yükleme tamamlanmış oluyor.

<%@ page import="java.io.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <%
      String dosyakaydet = "";
      String dosyaadi = request.getContentType();
      if ((dosyaadi != null) && (dosyaadi.indexOf("multipart/form-data") >= 0)) {
            DataInputStream in = new DataInputStream(request.getInputStream());
            int dosyauz = request.getContentLength();
            byte veri[] = new byte[dosyauz];
            int okunan = 0;
            int toplamokunan = 0;
            while (toplamokunan < dosyauz) {
                  okunan = in.read(veri, toplamokunan, dosyauz);
                  toplamokunan += okunan;
            }
            String file = new String(veri);
            dosyakaydet = file.substring(file.indexOf("filename=\"") + 10);
            dosyakaydet = dosyakaydet.substring(0, dosyakaydet.indexOf("\n"));
            dosyakaydet = dosyakaydet.substring(dosyakaydet.lastIndexOf("\\") + 1, dosyakaydet.indexOf("\""));
            int son = dosyaadi.lastIndexOf("=");
            String boun = dosyaadi.substring(son + 1, dosyaadi.length());
            int yukle;
            yukle = file.indexOf("dosyaadi=\"");
            yukle = file.indexOf("\n", yukle) + 1;
            yukle = file.indexOf("\n", yukle) + 1;
            yukle = file.indexOf("\n", yukle) + 1;
            int boundaryLocation = file.indexOf(boun, yukle) - 4;
            int basla = ((file.substring(0, yukle)).getBytes()).length;
            int bitir = ((file.substring(0, boundaryLocation)).getBytes()).length;
            dosyakaydet = "C:/ftpblogburakkutbay/" + dosyakaydet;
            File ff = new File(dosyakaydet);
            FileOutputStream dosya = new FileOutputStream(ff);
            dosya.write(veri, basla, (bitir - basla));
            dosya.flush();
            dosya.close();
    %>
<b>Dosyanız Kaydedildi</b>
</body>
</html>

Java Server Pages’de dosya yükleme işlemi Servlet işlemi ile de olmakta. Java dosya yükleme komutlarından farklı olmamaktadır. Bir swing uygulaması için de bu yapı kullanılabilmektedir.

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Burak KUTBAY 2010 - 2019
%d blogcu bunu beğendi: