File Upload এবং Download ব্যবস্থাপনা

Java Technologies - অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) Streaming এবং Large File Handling |
155
155

অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) একটি জনপ্রিয় লাইব্রেরি যা HTTP রিকুয়েস্ট এবং রেসপন্স পরিচালনা করতে ব্যবহৃত হয়। এটি বিভিন্ন ধরনের HTTP অপারেশন যেমন GET, POST, PUT, DELETE, এবং অন্যান্য HTTP মেথড সমর্থন করে। এখানে আমরা File Upload এবং Download ব্যবস্থাপনা নিয়ে আলোচনা করব।


File Upload (ফাইল আপলোড)

ফাইল আপলোডের জন্য অ্যাপাচি এইচটিটিপি ক্লায়েন্ট ব্যবহার করা হলে, HTTP POST রিকুয়েস্টের মাধ্যমে ফাইল সার্ভারে পাঠানো হয়। সাধারণত, ফাইল আপলোড করার সময় মুলতঃ Multipart/Form-Data ফরম্যাট ব্যবহার করা হয়।

ফাইল আপলোডের উদাহরণ

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.CloseableHttpResponse;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.ContentBody;

import java.io.File;

public class FileUploadExample {

    public static void main(String[] args) {
        String url = "http://yourserver/upload"; // সার্ভারের URL যেখানে ফাইল আপলোড করতে হবে
        File file = new File("path_to_your_file.txt"); // আপলোড করার ফাইলের পাথ

        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            HttpPost postRequest = new HttpPost(url);

            // ফাইল কন্টেন্ট তৈরি করা
            ContentBody fileBody = new FileBody(file);
            HttpEntity entity = MultipartEntityBuilder.create()
                    .addPart("file", fileBody)
                    .build();

            postRequest.setEntity(entity);

            try (CloseableHttpResponse response = httpClient.execute(postRequest)) {
                // রেসপন্স স্ট্যাটাস চেক করা
                System.out.println("Response Code: " + response.getStatusLine().getStatusCode());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

এই কোডে MultipartEntityBuilder ব্যবহার করে ফাইলকে HTTP POST রিকুয়েস্টের মাধ্যমে সার্ভারে আপলোড করা হয়। ফাইলটি "file" নামক ফর্ম পারামিটার হিসেবে পাঠানো হয়।


File Download (ফাইল ডাউনলোড)

ফাইল ডাউনলোডের জন্য HTTP GET রিকুয়েস্ট ব্যবহার করা হয়, এবং রেসপন্স থেকে ফাইল কন্টেন্ট পড়ে স্থানীয় ডিভাইসে সংরক্ষণ করা হয়।

ফাইল ডাউনলোডের উদাহরণ

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.CloseableHttpResponse;
import java.io.FileOutputStream;
import java.io.InputStream;

public class FileDownloadExample {

    public static void main(String[] args) {
        String url = "http://yourserver/download/file.txt"; // ডাউনলোড করার ফাইলের URL
        String outputFile = "downloaded_file.txt"; // ডাউনলোড করা ফাইলটি কোথায় সংরক্ষণ হবে

        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            HttpGet getRequest = new HttpGet(url);

            try (CloseableHttpResponse response = httpClient.execute(getRequest)) {
                HttpEntity entity = response.getEntity();
                InputStream inputStream = entity.getContent();

                try (FileOutputStream fileOutputStream = new FileOutputStream(outputFile)) {
                    int bytesRead;
                    byte[] buffer = new byte[1024];
                    while ((bytesRead = inputStream.read(buffer)) != -1) {
                        fileOutputStream.write(buffer, 0, bytesRead);
                    }
                    System.out.println("File downloaded successfully.");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

এখানে HTTP GET রিকুয়েস্ট ব্যবহার করে একটি ফাইল ডাউনলোড করা হয়েছে এবং সেই ফাইলটি FileOutputStream ব্যবহার করে স্থানীয় ডিভাইসে সংরক্ষণ করা হয়েছে।


সারাংশ

অ্যাপাচি HTTP ক্লায়েন্টের মাধ্যমে ফাইল আপলোড এবং ডাউনলোডের জন্য HTTP POST এবং GET মেথড ব্যবহার করা হয়। ফাইল আপলোডের ক্ষেত্রে MultipartEntityBuilder ব্যবহার করে ফাইল সার্ভারে পাঠানো হয়, এবং ফাইল ডাউনলোডের ক্ষেত্রে HTTP GET রিকুয়েস্টের মাধ্যমে সার্ভার থেকে ফাইলটি নিয়ে স্থানীয় ডিভাইসে সংরক্ষণ করা হয়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion