django定义接口处理文件上传问题

1、设置配置文件
[[email protected] blog_project]# mkdir uploads 新建目录专门处理文件上传

[[email protected] blog_project]# vim blog_project/settings.py
MEDIA_URL = ‘/uploads/‘
MEDIA_ROOT = os.path.join(BASE_DIR, ‘uploads‘)

[[email protected] blog_project]# vim blog_project/urls.py
from django.conf import settings
urlpatterns = patterns(‘‘,
url(r‘^$‘, ‘blog.views.index‘),
url(r"^uploads/(?P<path>.*)$", \
"django.views.static.serve", \
{"document_root":settings.MEDIA_ROOT,}),
url(r‘^admin/‘, include(admin.site.urls)),

[[email protected] blog_project]# vim static/js/kindeditor-4.1.7/config.js
KindEditor.ready(function(K) {
K.create(‘textarea[name=content]‘,{
width:800,
height:200,
uploadJson:‘/admin/upload/kindeditor‘,
});
});

通过此次操作,可以执行上次头像变更操作。

2、掌握方法
研究下里面的serve方法
[[email protected] blog_project]# cat /usr/lib/python2.6/site-packages/django/views/static.py
def serve(request, path, document_root=None, show_indexes=False):

3、web端操作:
用户—root—添加头像
查看效果(这些效果均跟数据库创建的user相关)
生成目录:[[email protected] blog_project]# ls uploads/avatar/201610/2.jpg
浏览器设置:http://192.168.1.179:8000/uploads/avatar/201610/2.jpg



二、文本添加图片上传:
1、准备文件
[[email protected] blog_project]# vim blog/upload.py

编辑器需要特定的json格式。
#{"error":1, "message":"出错信息"}
#{"error":0, "url":"图片地址"}br/>@csrf_exempt装饰器:不做远程表单csrf认证,省去验证
files = request.FILES.get("imgFile",None)这个文件需要配合前端F12查询获得。

2、添加url
[[email protected] blog_project]# vim blog_project/urls.py
from blog.upload import upload_image
url(r‘^admin/upload/(?P<dir_name>[^/]+)$‘, upload_image, name=‘upload_image‘),

3、编辑工具添加一行
[[email protected] blog_project]# vim static/js/kindeditor-4.1.7/config.js
KindEditor.ready(function(K) {
K.create(‘textarea[name=content]‘,{
width:‘800px‘,
height:‘200px‘,
uploadJson:‘/admin/upload/kindeditor‘,
});
});

4、上传成功,展示效果:
后台生成目录并存有照片
[[email protected] blog_project]# ls uploads/kindeditor/2016/10/ae9f8ba8-9023-11e6-b639-000c29875ae0.jpg

django定义接口处理文件上传问题

原文地址:http://blog.51cto.com/10227140/2159045

时间: 2024-11-13 08:29:11

django定义接口处理文件上传问题的相关文章

python接口自动化测试二十三:文件上传

# 以禅道为例: 一.创建一个类,类里面写一个登录方法: import requestsclass LoginZentao(): def __init__(self, s): # 初始化 self.s = s # 定义一个全局的s def login(self): r = self.s.post() # self.s调用全局的s pass if __name__=='__main__': s = requests.session() zentao = LoginZentao(s) # 类实例化为

java实现大文件上传

文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用HTML5的API,对文件上传进行渐进式增强: * iframe上传 * ajax上传 * 进度条 * 文件预览 * 拖放上传 1.1 传统形式 文件上传的传统形式,是使用表单元素file,参考 http://www.ruanyifeng.com/blog/2012/08/file_upload.h

java+web+大文件上传下载

文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用HTML5的API,对文件上传进行渐进式增强:     * iframe上传  * ajax上传  * 进度条  * 文件预览  * 拖放上传 1.1 传统形式 文件上传的传统形式,是使用表单元素file,参考 http://www.ruanyifeng.com/blog/2012/08/file_

局域网超大文件上传

文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用HTML5的API,对文件上传进行渐进式增强:     * iframe上传  * ajax上传  * 进度条  * 文件预览  * 拖放上传 1.1 传统形式 文件上传的传统形式,是使用表单元素file,参考 http://www.ruanyifeng.com/blog/2012/08/file_

[WebApi] 捣鼓一个资源管理器--多文件上传

<打造一个网站或者其他网络应用的文件管理接口(WebApi)第二章"多文件上传"> ======================================================== 作者:qiujuer 博客:blog.csdn.net/qiujuer 网站:www.qiujuer.net 开源库:Genius-Android 转载请注明出处:http://blog.csdn.net/qiujuer/article/details/41675299 ====

springmvc RestTemplate文件上传

在使用springmvc提供rest接口实现文件上传时,有时为了测试需要使用RestTemplate进行调用,那么在使用RestTemplate调用文件上传接口时有什么特别的地方呢?实际上只需要注意一点就行了,就是创建文件资源时需要使用org.springframework.core.io.FileSystemResource类,而不能直接使用java.io.File对象. Controller中的rest接口代码如下: @ResponseBody @RequestMapping(value =

PHP三种方法实现多文件上传

今天一个网介绍三种多文件上传的方法,前两种都是直接遍历三维超全局数组$_FILES,最后一种是先定义一个单文件上传函数,再循环调用该函数,完成多文件的上传. 方法一:当多文件上传表单中多个上传文件的name属性为“pic[]”形式时,也即表单为这种形式. HTML代码: <form action="" method="post"enctype="multipart/form-data"> <input type="hi

falsk之文件上传

在使用flask定义路由完成文件上传时,定义upload视图函数 from flask import Flask, render_template from werkzeug.utils import secure_filename import os app = Flask(__name__) app.debug = True app.secret_key = 'helloworld!!' @app.route('/') def hello_world(): return 'Hello Wor

django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除

运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.168.1.216 192.168.1.217 我们只需要在配置文件中进行配置即可,然后利用客户端提供的接口通过简单的代码就可以将文件上传到分布式文件系统中 至于内部实现机制,可以参考我的另外一篇博客:分布式文件系统Fastdfs原理及部署 再次提醒在安装客户端可能会遇到各种不可控的因素,导致你上传失败