首先,在html模版中新增類似下面的**
<
input
type="submit" value="上傳檔案" />
這裡需要注意一下幾點:
form表單彙總一定要有enctype="multipart/form-data"
屬性form需要以post方式提交
form的action屬性對應views中處理upload上傳邏輯的函式
需要有csrf_token這個標籤,否則post無法提交
第乙個的型別為file,這是乙個檔案選擇器,name屬性很重要,因為後面通過此欄位取出檔案物件
接下來,編寫cgi邏輯
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def
process_upload_file(request):
# 獲取檔案
# 寫入檔案
file_name
=
'temp_file-%d'
%
random.randint(
0
,
100000
)
# 不能使用檔名稱,因為存在中文,會引起內部錯誤
file_full_path
=
os.path.join(upload_root, file_name)
dest
=
open
(file_full_path,
'wb+'
)
dest.write(file_obj.read())
dest.close()
return
render_to_response(
'upload_result.html'
,{})
取用檔案的方式為:「file_obj = request.files.get('file', none)」。第乙個引數」your_file
」對應form中的第乙個input標籤。然後,可以通過file_obj.name獲取檔名稱,file_obj.read()方法獲取檔案內容。上傳的檔案放在記憶體中,所以此方法只適合小檔案上傳。
Django檔案上傳 適用於單一小檔案上傳
首先,在html模版中新增類似下面的 這裡需要注意一下幾點 form表單彙總一定要有enctype multipart form data 屬性 form需要以post方式提交 form的action屬性對應views中處理upload上傳邏輯的函式 需要有csrf token這個標籤,否則post...
寫一段適用於微控制器和上位機的蜂鳴器處理程式
define beep nor define beep on define beep off typedef struct beep beep struct n 響的次數,btime 響的時間,gtime 不響的時間 void beep beep struct beep,uint8 n,uint8 ...
php函式偽靜態 MVC單一入口與檔案上傳安全漏洞
php中有乙個讓人不解的特性,那就是,如果檔名中有 php 則會自動呼叫php引擎,當成php指令碼處理。php的函式偽靜態也是這樣做出來的。以下是函式偽靜態所用的函式 function makeurl arr tmpurl implode url return tmpurl.htm functio...