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

File Upload Example ใน Python - อัปโหลดไฟล์

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



    

File:

ผลลัพธ์

ผลลัพธ์ของโค้ดนี้คือฟอร์มดังภาพ:

File Upload Example ใน 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


    

%s

""" % (message,)

ถ้ารันสคริปต์ข้างต้นบน Unix/Linux ต้องดูแลการแทนที่ file separator ดังนี้ มิฉะนั้นบน Windows เปิด() ควรทำงานได้ดี:

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