from django.shortcuts import render from django.http import HttpResponse, FileResponse from django.core.files.storage import get_storage_class from django.core.files.base import ContentFile from django_api import settings import time, datetime from . import models # Create your views here. def upload_file(request): # curl -F "file=@anaconda-ks.cfg" "http://192.168.0.110:8000/newcct/upload/" """curl 上传文件""" try: file_object = request.FILES.get('file', '') # 获取文件 print('file name: ' + file_object.name) print('file size: ' + str(file_object.size)) print('file content_type: ' + file_object.content_type) print(type(file_object)) timestamp = file_object.name.split('_')[2].split('.')[0] date_array = datetime.datetime.fromtimestamp(int(timestamp)).strftime("%Y-%m-%d %H:%M:%S") print(timestamp) print(date_array) if file_object: storage_system_object = get_storage_class()(settings.NEWCCT_UPLOAD_FILE_PATH) # 设置文件存储路径 upload_file_object = ContentFile(content=file_object.read(), name=file_object.name) storage_system_object.save(name=file_object.name, content=upload_file_object) # 保存文件 models.info_test.objects.create(file_name=file_object.name, create_time=date_array, download_link='http://192.168.0.104:8000/newcct/download/?file=%s' % file_object.name) return HttpResponse('success') else: return HttpResponse('fail') except Exception as e: print(repr(e)) return HttpResponse(str(e)) def download_file(request): """下载文件""" try: download_filename = request.GET.get('file') absolute_location = settings.NEWCCT_UPLOAD_FILE_PATH + download_filename file = open(absolute_location, 'rb') # response = FileResponse(file) # response['Content-Type'] = 'application/octet-stream' # return response return FileResponse(file) except Exception as e: print(repr(e)) return HttpResponse(str(e))
django文件上传下载API
最新推荐文章于 2022-10-10 08:00:00 发布