Django檔案上傳 適用於單一小檔案上傳

2021-09-22 07:15:07 字數 2480 閱讀 2447

首先,在html模版中新增類似下面的**

<inputtype="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

defprocess_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()

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