def file_upload(request):
# 文件上传
if request.method == "POST":
document_code = request.POST.get('document_code')
file = request.FILES.get('file') # 文件对象
document_name = file.name # 文件名
document_size = file.size # 文件大小
document_type = document_name.split(".")[1] # 文件类型
document_path = 'journal/' + document_name # 路径
helps_id = request.POST.get('helps_id') # 应助文章
responders = get_id(request.POST.get('responders')) # 应助人
# 应助开始时间
response_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
# 应助结束时间
end_response_time = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')
if document_code == '全文文件':
# 改变应助文章状态等
data = [{"document_code": document_code,
"document_type": document_type,
"document_name": document_name,
"document_size": document_size / 1e3,
"document_path": 'seek_help/' + document_path}]
Helps.objects.filter(Q(state=0) & Q(id=helps_id)).update(responders=responders,
state=6,
field_info=data,
response_time=response_time,
end_response_time=end_response_time)
response = requests.post(PATH, data={'document_name': document_path, 'file': base64.b64encode(file.read())})
print(response.text)
return JsonResponse({'code': 200, 'data': data})
response = requests.post(PATH, data={'document_name': document_path, 'file': base64.b64encode(file.read())}) 这个方法其实就是将文件信息和转成base64的文件发到服务器那边,那边就是以下的方法存入服务器
文件存入本地的方法
# 文件存入本地
try:
if os.path.exists(document_path):
os.remove(document_path)
with open(document_path, 'wb+') as f:
for chunk in file.chunks():
f.write(chunk)
f.close()
return JsonResponse({'code': 200, 'data': data})
网友评论