這次我們來看下文件下載和上傳的操作。首先是上傳,HTML設置上傳文件的表單需要設置 enctype 屬性為 multipart/form-data,代碼如下所示:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>luyaran(luyaran.com)</title> </head> <body> <form enctype="multipart/form-data" action="/cgi-bin/save_file.py" method="post"> <p>選中文件: <input type="file" name="filename" /></p> <p><input type="submit" value="上傳" /></p> </form> </body> </html>
save_file.py腳本文件代碼如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- import cgi, os import cgitb; cgitb.enable() form = cgi.FieldStorage() # 獲取文件名 fileitem = form['filename'] # 檢測文件是否上傳 if fileitem.filename: # 設置文件路徑 fn = os.path.basename(fileitem.filename) open('/tmp/' + fn, 'wb').write(fileitem.file.read()) message = '文件 "' + fn + '" 上傳成功' else: message = '文件沒有上傳' print """\ Content-Type: text/html\n <html> <head> <meta charset="utf-8"> <title>luyaran(luyaran.com)</title> </head> <body> <p>%s</p> </body> </html> """ % (message,)
將以上代碼保存到 save_file.py,並修改 save_file.py 權限,之后運行就可以看到效果了,咱們這里就不贅述了。如果你使用的系統是Unix/Linux,你必須替換文件分隔符,在window下只需要使用open()語句即可。
fn = os.path.basename(fileitem.filename.replace("\\", "/" ))
接下來就來看下載。我們先在當前目錄下創建 foo.txt 文件,用於程序的下載。文件下載通過設置HTTP頭信息來實現,功能代碼如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- # HTTP 頭部 print "Content-Disposition: attachment; filename=\"foo.txt\""; print # 打開文件 fo = open("foo.txt", "rb") str = fo.read(); print str # 關閉文件 fo.close()
好啦,這次分享比較少,大家將就這看看哈。。。
如果感覺不錯的話,請多多點贊支持哦。。。
原文鏈接:https://blog.csdn.net/luyaran/article/details/79993874