django 文件上传 文件不一致
2013-03-14 20:15
351 查看
写了很简单的一个django上传的例子,可是发现上传的文件和源文件稍微不一样,打开的时候提示“文件损坏”之类的,mp3文件则表现为杂音
主要代码如下:
模版html
处理代码
于是上查看django文档,发现一处细微的差别,存放上传文件的打开模式不一样
storefile = open(files.name, 'w')
将之改为
storefile = open(files.name, 'wb+')
问题解决
结论:文件上传是以二进制的形式传递,所以如果保存的时候不是以二进制方式保存的话就会出现损失的情况
主要代码如下:
模版html
<html> <body> <form action="#" method="post" enctype="multipart/form-data"> {% csrf_token %} title: <input name="title" /><br/> file: <input name="ff" type="file" /> <div><input type="submit" name="post"></div> </form> </body> </html>
处理代码
def handle_upfile(files): # print 'file name is', files['name'] storefile = open(files.name, 'w') for chunk in files.chunks(): storefile.write(chunk) storefile.close()
@csrf_protect def upload(request): if request.method == 'POST': # form = upfileform.UploadForm(request.POST, request.FILES) print 'check if is_valid' utils.handle_upfile(request.FILES['ff']) return HttpResponseRedirect(reverse('fage.views.detail')) else: form = upfileform.UploadForm() return render(request, 'fage/upload.html', {'form': form})
于是上查看django文档,发现一处细微的差别,存放上传文件的打开模式不一样
storefile = open(files.name, 'w')
将之改为
storefile = open(files.name, 'wb+')
问题解决
结论:文件上传是以二进制的形式传递,所以如果保存的时候不是以二进制方式保存的话就会出现损失的情况
相关文章推荐
- django 文件上传 文件不一致
- Django上传文件
- Django实现任意文件上传(最简单的方法)
- Django上传文件之iframe
- django处理上传文件初探
- django使用uploadify上传文件
- django 文件上传
- django上传文件
- Django 图片 头像 文件 上传 展示
- django使用uploadify上传文件
- Django文件上传 -- 适用于单一小文件上传
- django部署到apache之后文件上传 [Errno 13] Permission denied
- Django 上传文件(bootstrap file input插件) 中文乱码 解决 (python3)
- django 学习-13 Django文件上传
- django 快速实现文件上传
- django 文件上传(阿里云oss)下载(支持大文件下载)
- django里面文件上传处理处理
- django上传文件
- django之 文件上传功能(缺陷:无法改存放目录)
- django如何实现文件的上传,修改,删除,展示(02)