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

2022-04-09 03:52:06 字數 988 閱讀 4985

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

這裡需要注意一下幾點:

form表單彙總一定要有enctype="multipart/form-data"

屬性 form需要以post方式提交

form的action屬性對應views中處理upload上傳邏輯的函式

需要有csrf_token這個標籤,否則post無法提交

第乙個的型別為file,這是乙個檔案選擇器,name屬性很重要,因為後面通過此欄位取出檔案物件

接下來,編寫cgi邏輯

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模版中新增類似下面的 inputtype submit value 上傳檔案 這裡需要注意一下幾點 form表單彙總一定要有enctype multipart form data 屬性form需要以post方式提交 form的action屬性對應views中處理upload上傳邏輯的...

寫一段適用於微控制器和上位機的蜂鳴器處理程式

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