码迷,mamicode.com
首页 > Web开发 > 详细

django 开发之文件上传

时间:2016-09-18 21:55:09      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

创建一个文件夹用于保存上传的路径

技术分享

然后在setting 里面配置文件的上穿的路径

#配置文件的上传路径
MEDIA_URL=‘/uploads‘
MEDIA_ROOT= os.path.join(BASE_DIR,‘uploads‘)

接着在url里面配置用户图像上传的路由

 

技术分享

解决富文本编辑器的图片长传问题:

首先要做的就是创建一个upload  python 文件 在你的app下创建、

技术分享

具体的代码如下

技术分享
 1 # -*- coding: utf-8 -*-
 2 from django.http import HttpResponse
 3 from django.conf import settings
 4 from django.views.decorators.csrf import csrf_exempt
 5 import os
 6 import uuid
 7 import json
 8 import datetime as dt
 9 #这个装饰器用于不再进行表单验证提交
10 @csrf_exempt
11 def upload_image(request, dir_name):
12     ##################
13     # 这是kindeditor想要的格式
14     #  kindeditor图片上传返回数据格式说明:
15     # {"error": 1, "message": "出错信息"}
16     # {"error": 0, "url": "图片地址"}
17     ##################
18     result = {"error": 1, "message": "上传出错"}
19     #imgFile来自于富文本编辑器查看源码之后找到的它定义的文件名字
20     files = request.FILES.get("imgFile", None)
21     if files:
22         result =image_upload(files, dir_name)
23     return HttpResponse(json.dumps(result), content_type="application/json")
24 
25 #目录创建
26 def upload_generation_dir(dir_name):
27     today = dt.datetime.today()
28     dir_name = dir_name + /%d/%d/ %(today.year,today.month)
29     if not os.path.exists(settings.MEDIA_ROOT + dir_name):
30         os.makedirs(settings.MEDIA_ROOT + dir_name)
31     return dir_name
32 
33 # 图片上传
34 def image_upload(files, dir_name):
35     #允许上传文件类型
36     allow_suffix =[jpg, png, jpeg, gif, bmp]
37     file_suffix = files.name.split(".")[-1]
38     if file_suffix not in allow_suffix:
39         return {"error": 1, "message": "图片格式不正确"}
40     relative_path_file = upload_generation_dir(dir_name)
41     path=os.path.join(settings.MEDIA_ROOT, relative_path_file)
42     if not os.path.exists(path): #如果目录不存在创建目录
43         os.makedirs(path)
44     file_name=str(uuid.uuid1())+"."+file_suffix
45     path_file=os.path.join(path, file_name)
46     file_url = settings.MEDIA_URL + relative_path_file + file_name
47     #写入操作,二进制形式,最终完成上传,真正保存图片
48     open(path_file, wb).write(files.file.read())
49     return {"error": 0, "url": file_url}
View Code

 

然后我们在url 里面写入路由

技术分享

最后我们要在富文本编辑器里面写入路径

技术分享

 

 

 

 

 

django 开发之文件上传

标签:

原文地址:http://www.cnblogs.com/yubenliu/p/5883144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!