template html(模板文件):
<form enctype="multipart/form-data" method="POST" action="/address/upload/"> <input type="file" name="file" /> <br /> <input type="submit" value="上传文件" /> </form>
a、自定义上传(建议用自定义的)
def index(request):
if request.method == 'POST':
obj = request.FILES.get('file')
import os
ppp = os.path.join('static','img',obj.name)
f = open(ppp, 'wb')
for chunk in obj.chunks():
f.write(chunk)
f.close()
return HttpResponse(request,'上传成功')
# return render(request, 'file.html')
else:
return render(request,'index.html')
head_img = request.FILES.get('file') print(head_img,"我是file") tags = request.POST.get('tags', None) # obj = request.FILES.get('file') import os print(head_img.chunks(),"我是名字") Statics = os.path.dirname(os.path.dirname(__file__)) user_img_file_path = os.path.join(Statics,"Statics",'Down_image',username) print(user_img_file_path) if not os.path.exists(user_img_file_path): os.mkdir(user_img_file_path) img_file_path = os.path.join(user_img_file_path,head_img.name) f = open(img_file_path, 'wb') for chunk in head_img.chunks(): f.write(chunk) f.close() return HttpResponse('上传成功')
b、Form上传文件实例
class FileForm(forms.Form): ExcelFile = forms.FileField()
from django.db import models class UploadFile(models.Model): userid = models.CharField(max_length = 30) file = models.FileField(upload_to = './upload/') date = models.DateTimeField(auto_now_add=True)
def UploadFile(request): uf = AssetForm.FileForm(request.POST,request.FILES) if uf.is_valid(): upload = models.UploadFile() upload.userid = 1 upload.file = uf.cleaned_data['ExcelFile'] upload.save() print upload.file