Django接收照片儲(chǔ)存文件的實(shí)例代碼
后端:
from rest_framework.views import APIView
from car import settings
from django.shortcuts import render, redirect, HttpResponse
from dal import models
from django.http import JsonResponse
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
class Image(APIView):
def post(self, request):
file_obj = request.FILES.get('send',None)
print("file_obj",file_obj.name)
file_path = os.path.join(BASE_DIR, 'media', 'user/img', file_obj.name)
print("file_path", file_path)
with open(file_path, 'w') as f:
for chunk in file_obj.chunks():
f.write(chunk)
message = {}
message['code'] = 200
return JsonResponse(message)
前端ajax:
<form method="post" action="/upload/" enctype="multipart/form-data" target="ifm1">
<input type="file" name="send"/>
<input type="submit" value="Form表單提交"/>
</form>
下面在看下在Django中接收文件并存儲(chǔ)
首先是一個(gè)views函數(shù)的例子
def get_user_profiles(request):
if request.method == 'POST':
myFile = request.FILES.get("filename", None)
if myFile:
dir = os.path.join(os.path.join(BASE_DIR, 'static'),'profiles')
destination = open(os.path.join(dir, myFile.name),
'wb+')
for chunk in myFile.chunks():
destination.write(chunk)
destination.close()
return HttpResponse('ok')
這是一個(gè)簡(jiǎn)單的接收客戶(hù)端上傳的頭像文件并保存的例子,應(yīng)該看過(guò)這個(gè)就已經(jīng)大體會(huì)使用接收文件了
但是這里的filename是客戶(hù)端上傳的文件名,也可能是像下面這樣的表單
<input type="file" name="filename" />
如果不知道固定上傳的文件名,想要客戶(hù)端上傳什么文件就以其上傳的名字命名可以這么寫(xiě)
def get_user_profiles(request):
if request.method == 'POST':
if request.FILES:
myFile =None
for i in request.FILES:
myFile = request.FILES[i]
if myFile:
dir = os.path.join(os.path.join(BASE_DIR, 'static'),'profiles')
destination = open(os.path.join(dir, myFile.name),
'wb+')
for chunk in myFile.chunks():
destination.write(chunk)
destination.close()
return HttpResponse('ok')
不過(guò)這個(gè)是通過(guò)輸出request.FILES試出來(lái)的,不知道是否有更合適的方法。
總結(jié)
到此這篇關(guān)于Django接收照片儲(chǔ)存文件的實(shí)例代碼 的文章就介紹到這了,更多相關(guān)Django儲(chǔ)存文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中關(guān)于使用模塊的基礎(chǔ)知識(shí)
這篇文章主要介紹了Python中關(guān)于使用模塊的基礎(chǔ)知識(shí),是Python入門(mén)的基礎(chǔ),需要的朋友可以參考下2015-05-05
python中文分詞+詞頻統(tǒng)計(jì)的實(shí)現(xiàn)步驟
詞頻統(tǒng)計(jì)就是輸入一段句子或者一篇文章,然后統(tǒng)計(jì)句子中每個(gè)單詞出現(xiàn)的次數(shù),下面這篇文章主要給大家介紹了關(guān)于python中文分詞+詞頻統(tǒng)計(jì)的相關(guān)資料,需要的朋友可以參考下2022-06-06
Python 2.x如何設(shè)置命令執(zhí)行的超時(shí)時(shí)間實(shí)例
這篇文章主要給大家介紹了關(guān)于Python 2.x如何設(shè)置命令執(zhí)行超時(shí)時(shí)間的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-10-10
Python中json.dumps()函數(shù)使用和示例
這篇文章主要介紹了Python中json.dumps()函數(shù)使用和示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Tensorflow2.4從頭訓(xùn)練Word?Embedding實(shí)現(xiàn)文本分類(lèi)
這篇文章主要為大家介紹了Tensorflow2.4從頭訓(xùn)練Word?Embedding實(shí)現(xiàn)文本分類(lèi),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Python實(shí)現(xiàn)動(dòng)態(tài)二維碼生成的示例代碼
這篇文章主要和大家分享兩個(gè)制作二維碼的Python庫(kù),可以生成普通的二維碼、圖片背景版二維碼、動(dòng)圖GIF版二維。文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下2022-05-05
Win10操作系統(tǒng)中PyTorch虛擬環(huán)境配置+PyCharm配置
本文主要介紹了Win10操作系統(tǒng)中PyTorch虛擬環(huán)境配置+PyCharm配置,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09

