Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตัวอย่างการอัปโหลดไฟล์ใน Python


ในการอัปโหลดไฟล์ แบบฟอร์ม HTML ต้องมีแอตทริบิวต์ enctype ที่ตั้งค่าเป็น multipart/form-data . แท็กอินพุตที่มีประเภทไฟล์จะสร้างปุ่ม "เรียกดู"

<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>

ผลลัพธ์

ผลลัพธ์ของรหัสนี้อยู่ในรูปแบบต่อไปนี้ −

ตัวอย่างการอัปโหลดไฟล์ใน Python

ตัวอย่างข้างต้นถูกปิดใช้งานโดยเจตนาเพื่อบันทึกบุคคลที่อัปโหลดไฟล์บนเซิร์ฟเวอร์ของเรา แต่คุณสามารถลองใช้โค้ดด้านบนกับเซิร์ฟเวอร์ของคุณได้

นี่คือสคริปต์ 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,)

หากคุณเรียกใช้สคริปต์ด้านบนบน Unix/Linux คุณต้องดูแลการแทนที่ตัวคั่นไฟล์ดังนี้ มิฉะนั้นในเครื่อง windows ของคุณด้านบน open() คำสั่งจะทำงานได้ดี

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