Struts 2 তে File Upload করার পদ্ধতি

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

334

Struts 2 ফ্রেমওয়ার্কে ফাইল আপলোড করার জন্য একটি শক্তিশালী পদ্ধতি রয়েছে। Struts 2 ফাইল আপলোড করার জন্য File প্রপার্টি এবং FileUploadInterceptor ইন্টারসেপ্টর ব্যবহার করে, যা ক্লায়েন্ট থেকে সার্ভারে ফাইল পাঠানোর প্রক্রিয়া সরল করে।

ফাইল আপলোডের জন্য Struts 2 তে আপনাকে দুটি প্রধান অংশে মনোযোগ দিতে হবে:

  1. Action ক্লাস: যেখানে ফাইলটি গ্রহণ করা হয়।
  2. Interceptors: ফাইলের সাইজ, টাইপ চেক করা এবং আপলোডের প্রক্রিয়া ব্যবস্থাপনা করা হয়।

Struts 2 তে File Upload এর জন্য প্রয়োজনীয় পদক্ষেপ

১. Maven Dependencies

ফাইল আপলোডের জন্য আপনার pom.xml ফাইলে struts2-core এবং struts2-convention-plugin ডিপেনডেন্সি যোগ করতে হবে। যদিও, struts2-core সাধারণত Struts 2 প্রোজেক্টে ইতিমধ্যেই থাকে।

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.20</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-convention-plugin</artifactId>
    <version>2.5.20</version>
</dependency>

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

Struts 2 ফ্রেমওয়ার্কে ফাইল আপলোডের জন্য FileUploadInterceptor ব্যবহার করতে হবে যা ফাইলের সাইজ এবং অন্যান্য বৈশিষ্ট্য চেক করতে সহায়ক।

struts.xml:

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="uploadFile" class="com.example.FileUploadAction">
            <interceptor-ref name="fileUpload">
                <param name="maximumSize">1048576</param> <!-- 1MB -->
            </interceptor-ref>
            <result name="success">/uploadSuccess.jsp</result>
            <result name="input">/uploadForm.jsp</result>
        </action>
    </package>
</struts>
</struts>

ব্যাখ্যা:

  • <interceptor-ref name="fileUpload">: ফাইল আপলোডের জন্য FileUploadInterceptor ইন্টারসেপ্টর কনফিগার করা হয়েছে।
  • maximumSize: এই প্যারামিটারটি ফাইল আপলোডের সর্বোচ্চ সাইজ নির্ধারণ করে (এখানে 1MB)।

৩. Action ক্লাস তৈরি করা

FileUploadAction.java:

package com.example;

import com.opensymphony.xwork2.ActionSupport;
import java.io.File;

public class FileUploadAction extends ActionSupport {
    private File file;
    private String fileContentType;
    private String fileFileName;

    // Getter and Setter methods
    public File getFile() {
        return file;
    }

    public void setFile(File file) {
        this.file = file;
    }

    public String getFileContentType() {
        return fileContentType;
    }

    public void setFileContentType(String fileContentType) {
        this.fileContentType = fileContentType;
    }

    public String getFileFileName() {
        return fileFileName;
    }

    public void setFileFileName(String fileFileName) {
        this.fileFileName = fileFileName;
    }

    public String execute() {
        if (file != null) {
            System.out.println("File Name: " + fileFileName);
            System.out.println("File Content Type: " + fileContentType);
            // Add logic to save the file to server
            return SUCCESS;
        }
        return INPUT;
    }
}

ব্যাখ্যা:

  • File file: এখানে File ক্লাসের একটি ইনস্ট্যান্স তৈরি করা হয়েছে, যা আপলোড করা ফাইলের জন্য।
  • fileContentType: ফাইলের কনটেন্ট টাইপ ধারণ করে (যেমন image/jpeg, application/pdf ইত্যাদি)।
  • fileFileName: ফাইলের নাম ধারণ করে।

ফাইল আপলোডের পর, আপনি সাধারণত ফাইলটি সার্ভারে সংরক্ষণ করেন বা কোনো ডাটাবেসে রেফারেন্স জমা করেন।

৪. JSP ফর্ম তৈরি করা

uploadForm.jsp (ফাইল আপলোড ফর্ম):

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

ব্যাখ্যা:

  • <s:file>: Struts 2 এর file tag ব্যবহার করে ফাইল আপলোড ফিল্ড তৈরি করা হয়েছে। এটি ব্যবহারকারীর কাছ থেকে ফাইল গ্রহণ করবে।
  • enctype="multipart/form-data": ফাইল আপলোড করতে এই enctype প্রয়োজন।

৫. ফাইল আপলোড সফল হলে Success Page তৈরি করা

uploadSuccess.jsp:

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
    <body>
        <h2>File uploaded successfully!</h2>
        <p>File name: <s:property value="fileFileName" /></p>
        <p>File type: <s:property value="fileContentType" /></p>
    </body>
</html>

ব্যাখ্যা:

  • <s:property>: অ্যাকশন ক্লাস থেকে প্রাপ্ত ডেটা (ফাইল নাম এবং কনটেন্ট টাইপ) JSP পৃষ্ঠায় প্রদর্শন করে।

ফাইল আপলোডের জন্য Struts 2-এ কাস্টম ইন্টারসেপ্টর

Struts 2 এ FileUploadInterceptor ব্যবহার করা হয়। এটি ফাইল আপলোড প্রক্রিয়াটি সঠিকভাবে হ্যান্ডল করে এবং ফাইলের সাইজ, টাইপ চেক করে।

<interceptor-ref name="fileUpload">
    <param name="maximumSize">1048576</param> <!-- 1MB -->
    <param name="allowedTypes">image/jpeg, image/png</param> <!-- allowed file types -->
</interceptor-ref>
  • maximumSize: ফাইলের সর্বোচ্চ সাইজ নির্ধারণ করে।
  • allowedTypes: কোন ধরনের ফাইল অনুমোদিত তা নির্ধারণ করে (যেমন, image/jpeg, image/png ইত্যাদি)।

সারাংশ

Struts 2 এ ফাইল আপলোড করার জন্য আপনি FileUploadInterceptor এবং File প্রপার্টি ব্যবহার করতে পারেন। আপনাকে struts.xml কনফিগারেশন ফাইলে ফাইল আপলোড ইন্টারসেপ্টর যোগ করতে হবে, এবং Action ক্লাসে ফাইল প্রপার্টি (যেমন, File file, String fileFileName, String fileContentType) তৈরি করতে হবে। আপনি ফাইলটি JSP ফর্মের মাধ্যমে ক্লায়েন্ট থেকে গ্রহণ করতে পারবেন এবং তারপর Action ক্লাসে এটি প্রক্রিয়া করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...