django的上传文件
models.py
#encoding=utf-8 from django.db import models class Photo(models.Model): file = models.FileField(upload_to='photos/%Y/%m/%d',blank=True,null=True) 一个文件上传字段
views.py文件
from django.http import HttpResponseRedirect from django.http import HttpResponse from django.shortcuts import render_to_response from django.conf import settings import os
def upload_file(request): if request.method == 'POST': file = request.FILES.get('filename','') filename=file.name fname = os.path.join(settings.MEDIA_ROOT,filename) if os.path.exists(fname): 判断文件夹是否存在 os.remove(fname) dirs= os.path.dirname(fname) 如果fname是完整路径 则输出完整的 否则为空 if not os.path.exists(dirs): 判断这个路径是否存在 os.makedirs(dirs) 如果不存在则创建这个目录 if os.path.isfile(fname): 判断是否为文件,是true,不是False, os.remove(fname)
fp = open(fname, 'wb') 读写打开这个要上传的文件 for content in file.chunks(): 写 fp.write(content) fp.close() return HttpResponse('ok') 如果上传成功则返回ok return render_to_response("upload.html",locals())
upload.html <form method="POST" action="/file/" enctype="multipart/form-data" name="form"> urls.py (r'^file/$','upload.views.upload_file'), settings: |