Elm:
টেক্সট ফাইল পড়া
কিভাবে:
Elm মূলত ফ্রন্ট-এন্ড ওয়েব ডেভেলপমেন্টে মনোনিবেশ করে থাকে, যেখানে সরাসরি ফাইল সিস্টেম অ্যাক্সেস করা নিরাপত্তার কারণে একটি না-যাওয়া পথ। এর পরিবর্তে, আপনি ব্যবহারকারীদের দ্বারা ফাইল আপলোড নিয়ন্ত্রণ করেন। এখানে আপনি কিভাবে একটি টেক্সট ফাইল পড়তে পারেন যা একজন ব্যবহারকারী নির্বাচন করে:
module Main exposing (..)
import Browser
import File exposing (File)
import File.Selector as Selector
import Html exposing (Html, button, div, text)
import Html.Events exposing (onClick)
type alias Model =
{ fileContent : String }
type Msg
= SelectFile
| ReceiveFileContent (Result () String)
init : Model
init =
{ fileContent = "" }
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
case msg of
SelectFile ->
(model, fileSelectCmd)
ReceiveFileContent (Ok content) ->
({ model | fileContent = content }, Cmd.none)
ReceiveFileContent (Err _) ->
(model, Cmd.none)
fileSelectCmd : Cmd Msg
fileSelectCmd =
File.select [ Selector.accept "text/*" ] { onDone = ReceiveFileContent }
view : Model -> Html Msg
view model =
div []
[ button [ onClick SelectFile ] [ text "Select a text file" ]
, div [] [ text model.fileContent ]
]
main : Program () Model Msg
main =
Browser.sandbox { init = init, update = update, view = view }
আপনার ব্রাউজারে কোডটি চালান, বোতামে ক্লিক করুন, এবং একটি টেক্সট ফাইল নির্বাচন করুন। এটি আপনার Elm অ্যাপ্লিকেশনে বিষয়বস্তু প্রদর্শন করে।
গভীর ডুব
Elm সরাসরি সার্ভারের ফাইল সিস্টেম থেকে ফাইল পড়ে না - এটি সার্ভার-সাইড অপারেশনের জন্য ডিজাইন করা হয়নি। এর পরিবর্তে, Elm ব্রাউজারের File API এর মাধ্যমে ফাইল ইনপুট পরিচালনা করে, সাধারণত ব্যবহারকারীর কোনো কর্মের দ্বারা ট্রিগার হয়, যেমন ফাইল নির্বাচন অথবা ড্র্যাগ-এন্ড-ড্রপ কর্ম। এটি একটি নিরাপত্তা পদক্ষেপ।
অতীতে, আপনি সার্ভার-সাইডে ফাইল পড়ার জন্য জাভাস্ক্রিপ্ট এবং Node.js ব্যবহার করে থাকতে পারেন, অথবা XMLHttpRequest (XHR) ব্যবহারকারীর ইন্টারঅ্যাকশন ছাড়া ক্লায়েন্ট-সাইড পড়ার জন্য। এগুলির নিরাপত্তা মডেল এবং ক্ষমতা ভিন্ন।
Elm এর File
এবং File.Selector
মডিউলগুলি ব্রাউজারে ফাইল পড়ার হ্যান্ডল করা যথেষ্ট মসৃণ করে তোলে, তবে Elm এর “কোনো পার্শ্ব প্রভাব নেই” দর্শন মনে রাখুন। এর মানে হল ফাইল পড়া কঠোরভাবে নিয়ন্ত্রিত, স্পষ্ট ব্যবহারকারীর ক্রিয়াকলাপের প্রয়োজন। এছাড়াও, ফাইলের বিষয়বস্তু পার্সিং এবং ডিকোডিং যত্ন সহকারে করা দরকার যাতে Elm এর শক্ত টাইপিং ম্যাচ করে।
আরও দেখুন
- অফিসিয়াল Elm ফাইল API ডকুমেন্টেশন: https://package.elm-lang.org/packages/elm/file/latest/
- Elm এর কমান্ড এবং সাবস্ক্রিপশন গাইড (অ্যাসিনক্রোনাস অপারেশন বোঝার জন্য): https://guide.elm-lang.org/effects/
- Elm Discuss প্রশ্ন এবং কমিউনিটি ইন্টারঅ্যাকশনের জন্য: https://discourse.elm-lang.org/