ফাইল ডাউনলোড লিঙ্ক এবং ডাউনলোড স্ট্রিম তৈরি করা

ফাইল আপলোড এবং ডাউনলোড - ভাডিন (Vaadin) - Web Development

354

Vaadin-এ ফাইল ডাউনলোড করার জন্য সাধারণত Download Link এবং Download Stream ব্যবহার করা হয়। এই দুটি পদ্ধতি ব্যবহার করে আপনি ইউজারদের ফাইল ডাউনলোড করার সুযোগ দিতে পারেন। এখানে, আমরা দেখবো কিভাবে একটি ডাউনলোড লিঙ্ক এবং ডাউনলোড স্ট্রিম তৈরি করা যায়।

ফাইল ডাউনলোড লিঙ্ক তৈরি করা


Vaadin-এ একটি ডাউনলোড লিঙ্ক তৈরি করতে, Anchor কম্পোনেন্ট ব্যবহার করা হয়। Anchor কম্পোনেন্টে href অ্যাট্রিবিউট ব্যবহার করে ইউজারকে একটি ফাইল ডাউনলোড করতে দেওয়া হয়। যদি আপনি ফাইলটি ক্লায়েন্টের ব্রাউজার থেকে সরাসরি ডাউনলোড করতে চান, তবে আপনাকে ফাইলটির URL প্রদান করতে হবে।

1. ডাউনলোড লিঙ্ক তৈরি করা

Button downloadButton = new Button("Download File");

Anchor downloadLink = new Anchor("https://example.com/file.pdf", "Download PDF");
downloadLink.getElement().setAttribute("download", true); // Specify that it's a download link

downloadButton.addClickListener(e -> {
    // Add any additional logic if needed
    Notification.show("Download link is ready!");
});

add(downloadButton, downloadLink);
  • এখানে, Anchor কম্পোনেন্ট ব্যবহার করা হয়েছে একটি পিডিএফ ফাইল ডাউনলোড লিঙ্ক তৈরি করতে। download অ্যাট্রিবিউটটি নির্ধারণ করে যে এটি একটি ডাউনলোড লিঙ্ক হবে, যা ইউজারকে ক্লিক করার পর ফাইলটি ডাউনলোড করবে।

2. ইন-অ্যাপ ফাইল ডাউনলোড লিঙ্ক

আপনি যদি ফাইলটি সার্ভার সাইড থেকে সরাসরি ডাউনলোড করতে চান, তাহলে এটি ব্যবহার করতে হবে:

Button downloadButton = new Button("Download Report");
downloadButton.addClickListener(event -> {
    // Example: dynamically generated file content
    String content = "This is a dynamically generated content.";
    ByteArrayInputStream stream = new ByteArrayInputStream(content.getBytes());

    // Create a download link for the file
    StreamResource resource = new StreamResource("report.txt", () -> stream);
    Anchor downloadLink = new Anchor(resource, "Download Report");
    downloadLink.getElement().setAttribute("download", true);
    add(downloadLink);
});

add(downloadButton);
  • এখানে, StreamResource ব্যবহার করা হয়েছে ডাইনামিকভাবে জেনারেট হওয়া ফাইলের জন্য একটি ডাউনলোড লিঙ্ক তৈরি করতে। ইউজার Download Report বাটনে ক্লিক করলে report.txt নামক একটি ফাইল ডাউনলোড হবে।

ফাইল ডাউনলোড স্ট্রিম তৈরি করা


Download Stream ব্যবহৃত হয় যখন আপনাকে ফাইলের কনটেন্টকে স্ট্রিমের মাধ্যমে সরবরাহ করতে হয়। এখানে আপনি ফাইলের কনটেন্ট মেমরি থেকে স্ট্রিম করে ইউজারের ব্রাউজারে পাঠাতে পারবেন।

1. স্ট্রিম রিসোর্স তৈরি করা

Button downloadButton = new Button("Download Report");

downloadButton.addClickListener(event -> {
    // Example: Generate file content dynamically
    String content = "This is a dynamically generated content for the report.";
    ByteArrayInputStream stream = new ByteArrayInputStream(content.getBytes());

    // Create the stream resource
    StreamResource resource = new StreamResource("dynamic_report.txt", () -> stream);

    // Create an anchor with the stream resource
    Anchor downloadLink = new Anchor(resource, "Download Dynamic Report");
    downloadLink.getElement().setAttribute("download", true);
    
    // Show the download link
    add(downloadLink);
});

add(downloadButton);
  • এখানে, ByteArrayInputStream ব্যবহার করে স্ট্রিম ডেটা তৈরি করা হয়েছে। তারপর, সেই স্ট্রিম ডেটাকে StreamResource দিয়ে সংযুক্ত করা হয়েছে। এই রিসোর্স একটি ডাউনলোড লিঙ্ক হিসেবে ইউজারের কাছে পৌঁছে যাবে।

2. ফাইল সার্ভার থেকে ডাউনলোড করা

এছাড়া, যদি আপনি সার্ভার থেকে একটি রিয়েল ফাইল ডাউনলোড করতে চান, তাহলে StreamResource ব্যবহার করে সেই ফাইলটিকে স্ট্রিম করা যেতে পারে:

Button downloadButton = new Button("Download File");

downloadButton.addClickListener(event -> {
    // Assume you have a file in the resources folder
    InputStream fileStream = getClass().getResourceAsStream("/files/sample_report.pdf");

    // Create the stream resource for the file
    StreamResource resource = new StreamResource("sample_report.pdf", () -> fileStream);

    // Create the download link
    Anchor downloadLink = new Anchor(resource, "Download PDF");
    downloadLink.getElement().setAttribute("download", true);

    // Show the download link
    add(downloadLink);
});

add(downloadButton);
  • এখানে, getClass().getResourceAsStream("/files/sample_report.pdf") ব্যবহার করে সার্ভারের ফাইলকে স্ট্রিম করা হয়েছে এবং এটি একটি StreamResource তৈরি করে ডাউনলোড লিঙ্কে আনা হয়েছে।

সারাংশ


Vaadin-এ ফাইল ডাউনলোড লিঙ্ক এবং ডাউনলোড স্ট্রিম তৈরি করা সহজ এবং কার্যকর। আপনি Anchor কম্পোনেন্ট ব্যবহার করে সরাসরি ফাইল ডাউনলোড লিঙ্ক তৈরি করতে পারেন, এবং StreamResource ব্যবহার করে ডাইনামিকভাবে জেনারেট হওয়া বা সার্ভার সাইডের ফাইল স্ট্রিম করতে পারেন। এগুলো ইউজারদের ফাইল ডাউনলোডের একটি নিরাপদ এবং সুগম পদ্ধতি প্রদান করে।

Content added By
Promotion

Are you sure to start over?

Loading...