কম্পিউটার

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


একটি ফাইল আপলোড করার জন্য, HTML ফর্মটিতে অবশ্যই এনটাইপ অ্যাট্রিবিউট সেট থাকতে হবে মাল্টিপার্ট/ফর্ম-ডেটা . ফাইলের প্রকার সহ ইনপুট ট্যাগ একটি "ব্রাউজ" বোতাম তৈরি করে৷

<html>
<body>
   <form enctype = "multipart/form-data" action = "save_file.py" method = "post">
   <p>File: <input type = "file" name = "filename" /></p>
   <p><input type = "submit" value = "Upload" /></p>
</form>
</body>
</html>

আউটপুট

এই কোডের ফলাফল হল নিম্নলিখিত ফর্ম −

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

আমাদের সার্ভারে ফাইল আপলোড করা লোকেদের সংরক্ষণ করার জন্য উপরের উদাহরণটি ইচ্ছাকৃতভাবে অক্ষম করা হয়েছে, তবে আপনি আপনার সার্ভারের সাথে উপরের কোডটি চেষ্টা করতে পারেন৷

এখানে save_file.py স্ক্রিপ্ট আছে ফাইল আপলোড পরিচালনা করতে -

#!/usr/bin/python
import cgi, os
import cgitb; cgitb.enable()
form = cgi.FieldStorage()
# Get filename here.
fileitem = form['filename']
# Test if the file was uploaded
if fileitem.filename:
   # strip leading path from file name to avoid
   # directory traversal attacks
   fn = os.path.basename(fileitem.filename)
   open('/tmp/' + fn, 'wb').write(fileitem.file.read())
   message = 'The file "' + fn + '" was uploaded successfully'
else:
   message = 'No file was uploaded'
print """\
Content-Type: text/html\n
<html>
<body>
   <p>%s</p>
</body>
</html>
""" % (message,)

আপনি যদি ইউনিক্স/লিনাক্সে উপরের স্ক্রিপ্টটি চালান, তাহলে আপনাকে নিম্নরূপ ফাইল বিভাজক প্রতিস্থাপনের যত্ন নিতে হবে, অন্যথায় আপনার উইন্ডোজ মেশিনে উপরের open() স্টেটমেন্টটি ঠিক কাজ করবে।

fn = os.path.basename(fileitem.filename.replace("\\", "/" ))

  1. পাইথন টিকিন্টারে asksaveasfile() ফাংশন

  2. পাইথন টিকিন্টারে askopenfile() ফাংশন

  3. পাইথনে ফাইল অবজেক্ট?

  4. পাইথনে জাঙ্ক ফাইল সংগঠক?