商务网站建设是什么,响应式布局网站开发,网络培训心得体会总结,抗疫物资捐赠网最近刚学python,遇到上传下载文件功能需求#xff0c;记录下#xff01;django web项目#xff0c;前端上传控件用的是uploadify。文件上传 - 后台view 的 Python代码如下#xff1a;csrf_exemptrequire_http_methods([POST])def uploadFiles(request):try:use…最近刚学python,遇到上传下载文件功能需求记录下django web项目前端上传控件用的是uploadify。文件上传 - 后台view 的 Python代码如下csrf_exemptrequire_http_methods([POST])def uploadFiles(request):try:user request.session.get(user)allFimeNames #获取所有上传文件files request.FILES.getlist(file)for file in files:# 获取文件名 解析文件后缀 获取新文件名oldName file.namefilename str(int(time.time() * 10)).oldName.split(.)[1]now datetime.now()filePath os.path.join(developmentTask,str(user.get(userId))-now.strftime(%Y-%m-%d))dirpath os.path.join(settings.UPLOADFILES_DIRS , filePath)#写入服务器if not os.path.exists(dirpath):os.makedirs(dirpath)newFilePath os.path.join(dirpath, filename)with open(newFilePath, wb) as destination:for chunk in file.chunks():destination.write(chunk)#返回新文件名 多个用逗号隔开allFimeNames os.path.join(filePath,filename)except Exception:return JsonResponse(data{error: 系统异常}, status400)return JsonResponse(data{filePath: allFimeNames})request.FILES.getlist(file)此处的file 是前端页面的文件提交的名称可以在uploadify中配置。文件下载csrf_exemptrequire_http_methods([GET])def downloadFile(request):filePath request.GET.get(filepath)fileName request.GET.get(filename)file_name os.path.join(settings.UPLOADFILES_DIRS, filePath)if os.path.exists(file_name):def file_iterator(file_name, chunk_size512):with open(file_name) as f:while True:c f.read(chunk_size)if c:yield celse:breakresponse StreamingHttpResponse(file_iterator(file_name))response[Content-Type] application/octet-streamresponse[Content-Disposition] attachment;filename{0}.format(fileName)return responseresponse StreamingHttpResponse(文件不存在)response[Content-Type] application/octet-streamresponse[Content-Disposition] attachment;filename{0}.format()return response以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持聚米学院。