国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python實(shí)現(xiàn)上傳下載文件功能

2020-01-04 17:03:12
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最近剛學(xué)python,遇到上傳下載文件功能需求,記錄下!

django web項(xiàng)目,前端上傳控件用的是uploadify。

文件上傳 - 后臺(tái)view 的 Python代碼如下:

@csrf_exempt@require_http_methods(["POST"])def uploadFiles(request): try:  user = request.session.get('user')  allFimeNames = ""  #獲取所有上傳文件  files = request.FILES.getlist("file")  for file in files:   # 獲取文件名 解析文件后綴 獲取新文件名   oldName = file.name   filename = 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)   #寫(xiě)入服務(wù)器   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)   #返回新文件名 多個(gè)用逗號(hào)隔開(kāi)   allFimeNames = os.path.join(filePath,filename) except Exception:  return JsonResponse(data={'error': "系統(tǒng)異常"}, status=400) return JsonResponse(data={'filePath': allFimeNames})

request.FILES.getlist("file")此處的file 是前端頁(yè)面的文件提交的名稱(chēng),可以在uploadify中配置。

文件下載:

@csrf_exempt@require_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_size=512):   with open(file_name) as f:    while True:     c = f.read(chunk_size)     if c:      yield c     else:      break  response = StreamingHttpResponse(file_iterator(file_name))  response['Content-Type'] = 'application/octet-stream'  response['Content-Disposition'] = 'attachment;filename="{0}"'.format(fileName)  return response response = StreamingHttpResponse("文件不存在!") response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="{0}"'.format("") return response

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。

 
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武胜县| 汾西县| 美姑县| 兴城市| 金沙县| 凤台县| 纳雍县| 个旧市| 隆昌县| 张家口市| 聂荣县| 临潭县| 万安县| 家居| 门头沟区| 辽宁省| 皋兰县| 大冶市| 太和县| 水城县| 成武县| 凌海市| 阜南县| 中方县| 承德县| 阳新县| 南雄市| 郴州市| 长沙县| 射洪县| 桂平市| 蒙山县| 滕州市| 铜鼓县| 石河子市| 惠东县| 大庆市| 靖州| 镶黄旗| 库车县| 和林格尔县|