python2.7入門---CGI編程&文件上傳&文件下載


    這次我們來看下文件下載和上傳的操作。首先是上傳,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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM