我想上传excel文件并将该文件保存到django中的特定位置,而无需为该文件创建模型。
我在这里试过 我的forms.py文件
class UploadFileForm(forms.Form):
file = forms.FileField(label='Select a file',
help_text='max. 42 megabytes')
my views.py
import xlrd
from property.forms import UploadFileForm
def excel(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
newdoc = handle_uploaded_file(request.FILES['file'])
print newdoc
print "you in"
newdoc.save()
return HttpResponseRedirect(reverse('upload.views.excel'))
else:
form = UploadFileForm() # A empty, unbound form
#documents = Document.objects.all()
return render_to_response('property/list.html',{'form': form},context_instance=RequestContext(request))
def handle_uploaded_file(f):
destination = open('media/file/sheet.xls', 'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()
因此,在尝试此操作时,我收到错误。
IOError at /property/excel/
[Errno 2] No such file or directory: 'media/file/sheet.xls'
Request Method: POST
Request URL: http://127.0.0.1:8000/property/excel/
Django Version: 1.5
Exception Type: IOError
Exception Value:
[Errno 2] No such file or directory: 'media/file/sheet.xls'
Exception Location: D:\Django_workspace\6thMarch\dtz\property\views.py in handle_uploaded_file, line 785
请帮帮我,handle_uploaded_file()函数有问题。
答案 0 :(得分:1)
如果你使用开放式(如开放式路径'路径',' wb +'),则需要使用FULL路径。
你能做的是:
from django.conf import settings
destination = open(settings.MEDIA_ROOT + filename, 'wb+')