উদাহরণ সহ File Upload এবং Download

Struts 2 এর File Upload এবং Download - স্ট্রাটস (Struts 2) - Java Technologies

299

Struts 2 এ File Upload এবং Download

Struts 2 ফ্রেমওয়ার্কে file upload এবং file download করতে ব্যবহৃত হয় Struts 2 File Upload প্লাগইন এবং Java IO লাইব্রেরি। ফাইল আপলোড এবং ডাউনলোডের জন্য Struts 2 এর মাধ্যমে সহজেই ফর্ম এবং অ্যাকশন কনফিগার করা যেতে পারে।


File Upload in Struts 2

Struts 2 ফ্রেমওয়ার্কে ফাইল আপলোড করার জন্য struts2-core-XX.jar এবং commons-fileupload-XX.jar ফাইলগুলি আপনার প্রকল্পে অন্তর্ভুক্ত থাকতে হবে। ফাইল আপলোড করার জন্য আমরা s:file ট্যাগ ব্যবহার করি, যা ফাইল ইনপুট ফিল্ড তৈরি করতে ব্যবহৃত হয়।

1. struts.xml কনফিগারেশন

প্রথমে struts.xml ফাইলে অ্যাকশন কনফিগার করুন যা ফাইল আপলোড প্রক্রিয়াটি পরিচালনা করবে।

<struts>
    <package name="default" extends="struts-default">
        <action name="upload" class="com.example.UploadAction" method="execute">
            <result name="success">/uploadSuccess.jsp</result>
        </action>
    </package>
</struts>

2. UploadAction ক্লাস

এখন UploadAction ক্লাস তৈরি করুন যেখানে ফাইল আপলোড প্রক্রিয়াটি সম্পন্ন হবে। এখানে, আপনি File টাইপের প্রপার্টি তৈরি করবেন, যা ফাইলটি পেতে সাহায্য করবে।

package com.example;

import com.opensymphony.xwork2.ActionSupport;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class UploadAction extends ActionSupport {
    private File upload;  // ফাইল আপলোড করা হবে
    private String uploadContentType;  // ফাইলের কনটেন্ট টাইপ
    private String uploadFileName;    // ফাইলের নাম

    public String execute() {
        // ফাইল প্রসেসিং
        if (upload != null) {
            String destinationPath = "/path/to/upload/directory/" + uploadFileName;
            File destFile = new File(destinationPath);
            upload.renameTo(destFile); // ফাইল রেনেম এবং ডিরেক্টরিতে স্থানান্তর
            return SUCCESS;
        }
        return ERROR;
    }

    // Getter and Setter methods
    public File getUpload() {
        return upload;
    }

    public void setUpload(File upload) {
        this.upload = upload;
    }

    public String getUploadContentType() {
        return uploadContentType;
    }

    public void setUploadContentType(String uploadContentType) {
        this.uploadContentType = uploadContentType;
    }

    public String getUploadFileName() {
        return uploadFileName;
    }

    public void setUploadFileName(String uploadFileName) {
        this.uploadFileName = uploadFileName;
    }
}

এখানে, UploadAction ক্লাসটি ফাইলটি গ্রহণ করবে, এবং তারপর নির্দিষ্ট ডিরেক্টরিতে সেটি সংরক্ষণ করবে।

3. JSP ফর্ম (File Upload Form)

এখন আপনাকে JSP পেজে ফাইল আপলোডের জন্য একটি ফর্ম তৈরি করতে হবে।

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>File Upload Example</title>
</head>
<body>
    <h2>Upload File</h2>
    <s:form action="upload" method="post" enctype="multipart/form-data">
        <s:file name="upload" label="Upload File" />
        <s:submit value="Upload" />
    </s:form>
</body>
</html>

এখানে, s:file ট্যাগ ফাইল ইনপুট ফিল্ড তৈরি করবে। enctype="multipart/form-data" এই ফর্মের মাধ্যমে ফাইল আপলোড করার জন্য ব্যবহৃত হয়।


File Download in Struts 2

Struts 2-এ ফাইল ডাউনলোডের জন্য সাধারণত InputStream ব্যবহার করা হয়, যা Action ক্লাসে ফাইল ডাউনলোড প্রক্রিয়া পরিচালনা করতে সাহায্য করে।

1. struts.xml কনফিগারেশন

struts.xml ফাইলে ডাউনলোড অ্যাকশনের কনফিগারেশন করতে হবে।

<struts>
    <package name="default" extends="struts-default">
        <action name="download" class="com.example.DownloadAction" method="execute">
            <result name="success" type="stream">
                <param name="contentType">application/octet-stream</param>
                <param name="inputName">inputStream</param>
                <param name="contentDisposition">attachment; filename="example.txt"</param>
            </result>
        </action>
    </package>
</struts>

এখানে, stream টাইপ রেজাল্ট ব্যবহার করা হয়েছে যাতে ফাইলটি সঠিকভাবে ডাউনলোড হতে পারে।

2. DownloadAction ক্লাস

এখন DownloadAction ক্লাস তৈরি করা হবে, যা ফাইল ডাউনলোডের জন্য InputStream প্রদান করবে।

package com.example;

import com.opensymphony.xwork2.ActionSupport;
import java.io.FileInputStream;
import java.io.InputStream;

public class DownloadAction extends ActionSupport {
    private InputStream inputStream;

    public String execute() {
        try {
            String filePath = "/path/to/file/example.txt";
            inputStream = new FileInputStream(filePath);  // ফাইল থেকে ইনপুট স্ট্রিম তৈরি
            return SUCCESS;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ERROR;
    }

    public InputStream getInputStream() {
        return inputStream;
    }

    public void setInputStream(InputStream inputStream) {
        this.inputStream = inputStream;
    }
}

এখানে, DownloadAction ক্লাসটি example.txt ফাইলের ইনপুট স্ট্রিম প্রস্তুত করবে, এবং Struts 2 রেসপন্স হিসেবে সেই ফাইলটি ডাউনলোড করবে।

3. JSP ফাইল ডাউনলোডের জন্য

এখন JSP ফাইল থেকে ডাউনলোড করার জন্য একটি লিঙ্ক তৈরি করতে হবে।

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>File Download Example</title>
</head>
<body>
    <h2>Download File</h2>
    <s:url action="download" var="downloadUrl"/>
    <a href="<s:property value='%{#downloadUrl}'/>">Click here to download the file</a>
</body>
</html>

এখানে, s:url ট্যাগের মাধ্যমে download অ্যাকশনের জন্য URL তৈরি করা হয়েছে, এবং লিঙ্কের মাধ্যমে ফাইল ডাউনলোড করা যাবে।


সারাংশ

Struts 2 ফ্রেমওয়ার্কে ফাইল আপলোড এবং ডাউনলোড খুবই সহজভাবে সম্পাদন করা যায়। ফাইল আপলোডের জন্য s:file ট্যাগ ব্যবহার করা হয় এবং File প্রপার্টি ব্যবহার করে Action ক্লাসে ফাইলটি গ্রহণ এবং ডিরেক্টরিতে সংরক্ষণ করা হয়। অন্যদিকে, ফাইল ডাউনলোডের জন্য InputStream ব্যবহার করে Action ক্লাসে ফাইলের ইনপুট স্ট্রিম তৈরি করা হয়, যা সঠিকভাবে ডাউনলোড করতে সহায়তা করে। Struts 2 ফ্রেমওয়ার্কে এই কার্যক্রমগুলো খুবই সহজ এবং কার্যকরীভাবে সম্পন্ন করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...