Django 上传图片 及图文混编操作
Django 上传图片 需要完成以下配置
首先static 下要有 以下几个js 文件
tinymce_setup.js
jquery-1.12.4.min.js
jquery.form.min.js
jquery.tinymce.min.js
引入图文混编这个要注意 引入下面这个js 文件一定要创建和这个文件一样的路径
jquery.tinymce.min.js 这个路径特别要注意
引入js
<script type="text/javascript" src="../../static/sadmin/js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../static/sadmin/js/jquery.form.min.js"></script>
<script src="../../static/sadmin/tinymce/js/tinymce/tinymce.min.js"></script>
<script src="../../static/sadmin/js/tinymce_setup.js"></script>
进入 tinymce_setup.js文件修改 imageupload_url 为:
imageupload_url: "/sadmin/upload_file/"
去 主应用Setting.py 中配制上传目录 在同级目录下创建upload文件夹
#定义上传文件夹的路径
UPLOAD_ROOT = os.path.join(BASE_DIR,'upload')
在主应用中 urls.py 中配置
from my_pro.settings import UPLOAD_ROOT
#导入文件路由库
from django.views.static import serve
# 配置路由
re_path('^upload/(?P<path>.*)$',serve,{'document_root':UPLOAD_ROOT}),
下面可以写代码了
img = request.FILES.get('file')
f = open(os.path.join(settings.UPLOAD_ROOT,'',img.name),'wb')
#写文件 遍历图片文件流
for chunk in img.chunks():
f.write(chunk)
#关闭文件流
f.close()
mes={}
# 给图片加上路径
mes['path'] = "/upload/"+img.name
mes['error'] = False
return HttpResponse(json.dumps(mes,ensure_ascii=False))
为了方便操作 可以写两个方法,一个专门处理上传图片,图文混编直接调用处理图片方法
# 上传图片
def image_all(img):
f = open(os.path.join(settings.UPLOAD_ROOT,'',img.name),'wb')
#写文件 遍历图片文件流
for chunk in img.chunks():
f.write(chunk)
f.close
# 混编器图片接口
def upload_img(request):
img = request.FILES.get('file')
image_all(img)
mes = {}
mes['path'] = "/upload/"+img.name
mes['error'] = False
return HttpResponse(json.dumps(mes,ensure_ascii=False))