লিনাক্স ব্যাশ / শেলটিতে কীভাবে চিত্র 64 এনকোড করা যায়


106

আমি শেল স্ক্রিপ্টে একটি চিত্রকে এনকোড করে ভেরিয়েবলের মধ্যে রাখার চেষ্টা করছি:

test="$(printf DSC_0251.JPG | base64)"
echo $test
RFNDXzAyNTEuSlBH

আমিও এরকম কিছু চেষ্টা করেছি:

test=\`echo -ne DSC_0251.JPG | base64\`

তবে এখনও কোনও সাফল্য নেই।

আমি এরকম কিছু করতে চাই:

curl -v -X POST -d '{"image":$IMAGE_BASE64,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8' http://192.168.1.1/upload

আমি এটি http://www.zzzxo.com/q/answers-bash-base64-encode-script-not-encoding-right-12290484.html খুঁজে পেয়েছি

কিন্তু এখনও কোন সাফল্য হয়নি।

উত্তর:


158

ফাইলের নিজের নাম বাদ দিয়ে 'DSC_0251.JPG' নামক ফাইলের বিষয়বস্তুগুলিcat পেতে আপনাকে ব্যবহার করতে হবে ।

test="$(cat DSC_0251.JPG | base64)"

তবে base64ফাইল থেকে নিজেই পড়তে পারেন:

test=$( base64 DSC_0251.JPG )

বিড়ালের সাথে এটি কাজ করে, অনেক ধন্যবাদ অনেক মানুষ। আমি জানি যে এটি ফাইল থেকে পড়তে পারে তবে এটি এখনও ভেরিয়েবলে সংরক্ষণ করতে সমস্যা আছে তাই পরীক্ষা = "$ (বিড়াল DSC_0251.JPG | বেস64)" আমার জন্য কাজ করে।
ড্যাশ 00

4
কি সমস্যা? উপরের দুটি কমান্ডের অনুরূপ ফলাফল পাওয়া উচিত, প্রথমটি বাদে বিড়ালের অকেজো ব্যবহার
চিপনার

তুমি ঠিক. এটি আমার করা উচিত$RESPONSE="$(curl -v -X POST -d '{"image":`base64|$DIR$IMAGE`,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8' --max-time 180 -s $URL)";
ড্যাশ 00

20
cat vlc.jpg | base64 -w 0 - যদি কেউ অনুলিপিটিকে অনুলিপি করে কপি এবং পেস্ট করতে চায়।

4
এর সাথে কী হয়েছে base64 DSC_0251.JPG? catপ্রোগ্রামটি যখন কোনও ফাইলকে আর্গুমেন্ট ( base64 [OPTIONS] [FILE]) হিসাবে গ্রহণ করে তখন ফিল্টারটি চালানোর দরকার নেই
এরিক

62

একক লাইন ফলাফল:

base64 -w 0 DSC_0251.JPG

এর জন্য HTML:

echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"

ফাইল হিসাবে:

base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64

পরিবর্তনশীল:

IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"

এর জন্য পরিবর্তনশীল HTML:

IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"

আপনাকে পঠনযোগ্য ডেটা ফিরিয়ে আনুন:

base64 -d DSC_0251.base64 > DSC_0251.JPG 

দেখুন: http://www.greywyvern.com/code/php/binary2base64


-w 0এই পরামিতিটি অনেক ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ। প্রাক্তন আমরা যদি কমান্ড লাইনে সরাসরি চলছি। ধন্যবাদ!
জয়েশ ধন্ধা

4
ওএসএক্সে বিটিডাব্লু আমি পাচ্ছি base64: invalid option -- w। এটি সরানো হলে, আমি পেয়েছি Unable to open '0': No such file or directory। দেখুন এই পরিবর্তে।
coblr

38

এর জন্য একটি লিনাক্স কমান্ড রয়েছে: বেস 64

base64 DSC_0251.JPG >DSC_0251.b64

পরিবর্তনশীল ব্যবহারের ফলাফল নির্ধারণ করতে

test=`base64 DSC_0251.JPG`

7
base64 -d DSC_0251.b64 > DSC_0251.JPGআপনি পঠনযোগ্য তথ্য ফিরে পেতে পারেন।
অ্যালস্টন

এই উত্তরটি এক্সএমএল এবং সিএসভি ফাইলগুলির জন্যও কাজ করেছিল।
লুকাস অ্যান্ড্রেড


1

এটি বেস 64 এবং এটি আপনার ক্লিপবোর্ডে রাখুন:

file="test.docx"
base64 -w 0 $file  | xclip -selection clipboard

0

আপনার যদি টার্মিয়াল থেকে ইনপুট দরকার হয় তবে এটি ব্যবহার করে দেখুন

lc=`echo -n "xxx_${yyy}_iOS" |  base64`

-n বিকল্পটি 64 character n "অক্ষরকে বেস64 কমান্ডের সাথে ইনপুট করবে না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.