日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django實現任意文件上傳(最簡單的方法)

瀏覽:224日期:2024-09-29 15:33:30

利用Django實現文件上傳并且保存到指定路徑下,其實并不困難,完全不需要用到django的forms,也不需要django的models,就可以實現,下面開始實現。

第一步:在模板文件中,創建一個form表單,需要特別注意的是,在有文件上傳的form表單中,method屬性必須為post,而且必須指定它的enctype為'multipart/form-data',表明不對字符進行編碼,具體的代碼如下:

<form enctype='multipart/form-data' action='/uploadFile/' method='post'> <input type='file' name='myfile' /> <br/> <input type='submit' value='upload'/></form>

Django實現任意文件上傳(最簡單的方法)

第二步:設置urls.py文件,指定相應的視圖函數進行處理

第三步:最重要的,在視圖函數中做處理,先把代碼貼出來,一共就這么點,可以實現任何格式文件的上傳

def upload_file(request): if request.method == 'POST': # 請求方法為POST時,進行處理 myFile =request.FILES.get('myfile', None) # 獲取上傳的文件,如果沒有文件,則默認為None if not myFile: returnHttpResponse('no files for upload!') destination = open(os.path.join('E:upload',myFile.name),’wb+’) # 打開特定的文件進行二進制的寫操作 for chunk in myFile.chunks(): # 分塊寫入文件 destination.write(chunk) destination.close() returnHttpResponse('upload over!')

代碼就是上面這些。

這里需要對上面視圖函數中的代碼進行詳細的解釋一番:

首先,對于上傳的文件,雖然是通過POST的方式上傳的,但是不能通過request.POST['myfile']或者request.POST.get('myfile', None),這兩種方式來訪問,這里需要使用另外一種方式,就是:

request.FILES['myfile']或者request.FILES.get('myfile', None)

因為上傳的文件是保存在FILES這個字典中的,可以在if request.method =='POST'之前加上一句assert False,再運行瀏覽器,就可以看到結果。

Django實現任意文件上傳(最簡單的方法)

接下來,需要判斷用戶是不是真的上傳了文件,如果用戶僅僅只是點了 一下upload按鍵,那么就提示他沒有上傳文件。

下面是最重要的部分,現在已經得到了文件了,但是文件在內存中,沒有寫到硬盤里面去,接下里需要完成的就是把文件寫入到硬盤,那到底該怎么寫,我看了很多人的博客,寫的云里霧里的,都沒有說清楚,把我搞糊涂了。

其實上傳文件,就是把硬盤里面某個文件的數據,寫入到服務器指定的文件中,在最底層不管是txt文件還是exe文件等,全都是二進制的數據,這里所要做的只是將已經上傳了的文件的數據,以二進制的方式寫入到服務器指定的文件中,這個文件可以隨意命名。

比如可以將上傳的123.exe文件,保存為abc.txt,但是這毫無意義,對于上傳的123.exe,在服務器上也應該是123.exe。其實在這里所說的abc.txt和123.exe的內容是完全一樣的,只需要將abc.txt的文件后綴改為exe就行了。

在進行進一步的代碼解釋之前,需要先講幾個關于上傳文件的方法和屬性:

myFile.read():從文件中讀取整個上傳的數據,這個方法只適合小文件;

myFile.chunks():按塊返回文件,通過在for循環中進行迭代,可以將大文件按塊寫入到服務器中;

myFile.multiple_chunks():這個方法根據myFile的大小,返回True或者False,當myFile文件大于2.5M(默認為2.5M,可以調整)時,該方法返回True,否則返回False,因此可以根據該方法來選擇選用read方法讀取還是采用chunks方法:

if myFile.multiple_chunks() == False: # 使用myFile.read() else: # 使用myFile.chunks()

myFile.name:這是一個屬性,不是方法,該屬性得到上傳的文件名,包括后綴,如123.exe;

myFile.size:這也是一個屬性,該屬性得到上傳文件的大小。

接下來的一行代碼是:

destination = open(os.path.join('E:upload',myFile.name), ’wb+’)

這一行代碼需要用到os模塊,import os。對于os.path.join('E:upload', myFile.name),如果上傳的文件為123.exe,那么將得到E:upload123.exe這個路徑,以寫二進制的方式打開這個文件。接下來是分塊寫入數據:

for chunk in myFile.chunks(): # 分塊寫入文件 destination.write(chunk)

數據寫完之后關閉文件就可以了,destination.close()。

首先選擇文件:

Django實現任意文件上傳(最簡單的方法)

點擊upload,顯示upload over!

查看指定目錄下是否有相應的上傳文件:

Django實現任意文件上傳(最簡單的方法)

到此這篇關于Django實現任意文件上傳(最簡單的方法)的文章就介紹到這了,更多相關Django 任意文件上傳內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文av在线全新| 国产一区一一区高清不卡| 中文字幕一区二区精品区| 岛国av在线播放| 日本少妇精品亚洲第一区| 久久久噜噜噜| 麻豆国产91在线播放| 亚洲免费一区三区| 黄色亚洲免费| 99精品视频在线| 天堂中文av在线资源库| 国产99在线| 国产欧美一区二区三区米奇| 国产精品13p| 麻豆中文一区二区| 国产日本精品| 亚洲精品乱码久久久久久蜜桃麻豆 | 红桃视频国产精品| 亚洲精品成人图区| 日韩伦理一区| 久久久精品五月天| 欧美亚洲一区二区三区| 日本在线一区二区三区| 亚洲精品伊人| 777久久精品| 久久不卡国产精品一区二区| 欧美aⅴ一区二区三区视频| 丝袜亚洲另类欧美| 美女久久网站| 午夜亚洲福利| 国产精品v日韩精品v欧美精品网站 | 91精品啪在线观看国产18| 欧美成人a交片免费看| 亚洲精品福利电影| 一区在线观看| 人人香蕉久久| 亚洲综合不卡| 国产精品亚洲四区在线观看 | 久久亚洲精品中文字幕| 中文一区二区| 天堂av一区| 成人亚洲一区| 亚洲欧美日本视频在线观看| 日韩和欧美一区二区三区| 久久尤物视频| 在线亚洲欧美| 久久久久97| 在线亚洲国产精品网站| 日韩精品乱码av一区二区| 欧美国产另类| 91精品福利| 麻豆成人在线观看| 99热精品在线| 精品欧美日韩精品| 国产精品美女久久久| 久久影院资源站| 中文一区一区三区免费在线观 | 日韩精品首页| 一区在线免费观看| 免费观看亚洲天堂| 国产拍在线视频| 99久精品视频在线观看视频| 伊人久久婷婷| 亚洲深夜视频| 国产精品国码视频| 亚洲一区二区三区高清| 成人影视亚洲图片在线| 丁香婷婷久久| 久久久精品日韩| 欧美成人高清| 爽好久久久欧美精品| 久久国产精品毛片| 亚洲精品婷婷| 日本中文字幕视频一区| 日本成人手机在线| 欧美xxxx性| 日本精品影院| 视频一区二区中文字幕| 日韩影院精彩在线| 久久国产乱子精品免费女| 免费在线亚洲欧美| 日韩欧美午夜| 石原莉奈在线亚洲二区| 欧美有码在线| 亚洲成人不卡| 亚洲精品伊人| 福利在线一区| 亚洲国产一区二区在线观看 | 激情欧美一区| 一区二区国产在线观看| 国产精品www.| 国产精品毛片在线看| 国产精品115| 六月丁香综合| 国产69精品久久| 亚洲五月综合| 亚洲伦乱视频| 日本中文字幕一区二区视频 | 成人日韩精品| 亚洲bt欧美bt精品777| 麻豆国产精品777777在线| 91精品一区国产高清在线gif| 天堂精品久久久久| 岛国av在线网站| 日韩中文在线播放| 日韩av资源网| 蜜臀国产一区二区三区在线播放| 亚洲精品一级| 国产成人免费视频网站视频社区| 香蕉久久久久久久av网站| 精品无人区麻豆乱码久久久| 视频一区欧美日韩| 国产精品入口久久| 日韩国产一区二| 蜜桃91丨九色丨蝌蚪91桃色| 国产综合亚洲精品一区二| 国产一区二区精品久| 国产欧美69| 国产日本精品| 国产欧美精品久久| 日韩有吗在线观看| 免费观看在线综合| 欧美午夜不卡影院在线观看完整版免费 | 欧美精品一区二区三区精品| 精品一区二区三区视频在线播放| 香蕉久久国产| 蜜臀av一区二区三区| av一区二区高清| 亚洲精品国产偷自在线观看| 久久国产免费| 欧美福利在线| 亚洲一区日韩在线| 久久先锋影音| 深夜福利亚洲| 国产精品日韩精品中文字幕| 久久狠狠亚洲综合| 欧美成人aaa| 国产传媒av在线| 久久精品主播| 男女男精品网站| 日韩欧美美女在线观看| 亚洲精品看片| 美女av一区| 亲子伦视频一区二区三区| 亚洲国产综合在线看不卡| 免播放器亚洲| 国产精品蜜月aⅴ在线| 精品网站999| 国户精品久久久久久久久久久不卡| 国产手机视频一区二区| 亚洲精品在线国产| 精品国产亚洲一区二区三区在线| 高清不卡亚洲| 亚洲一二三区视频| 精品色999| 久久婷婷丁香| 日本在线一区二区三区| 岛国av在线播放| 婷婷五月色综合香五月| 久久精品国产999大香线蕉| 欧美亚洲国产激情| 国产欧美日韩视频在线| 久久精品国内一区二区三区水蜜桃| 蜜桃视频一区二区三区| 国产传媒在线观看| 日本成人在线不卡视频| 99久久久久| 国产精品成人国产| 欧美另类专区| 国产美女高潮在线观看| 在线亚洲欧美| 国产在线观看www| 深夜日韩欧美| 亚洲一区日韩在线| 日韩在线第七页| 美女久久精品| 欧美视频久久| 亚洲精品中文字幕99999| 久久一区二区三区电影| 国产一区二区三区四区大秀| 欧美一级全黄| 日本成人手机在线| 蜜桃视频在线观看一区| 亚洲大全视频| 欧美日韩激情| 欧洲一级精品| 日韩免费福利视频| av在线最新| 日韩亚洲一区在线| 国产suv精品一区二区四区视频| 欧美偷窥清纯综合图区| 日韩av网站在线观看| 亚洲毛片网站| 日本欧美一区二区| 日本亚洲欧洲无免费码在线| 亚洲天堂免费| 日韩精品91亚洲二区在线观看| 亚州国产精品| 青青草国产精品亚洲专区无| 青青伊人久久|