Loading

django【文件上传】

import os
import datetime
from django.core.files.storage import default_storage

@action(detail=False, methods=['post'], url_path='upload')
    def upload(self, request):
        # upload/2024/10/07/178bb3d5cfc06006d1d884951a20ff3.jpg
        upload_obj = request.FILES.get('file')

        file_name = upload_obj.name  # 工作簿1.xlsx
        date_path = datetime.datetime.now().strftime('%Y/%m/%d')  # 2024/10/13
        upload_path = settings.UPLOAD_PATH  # upload/

        # 获取文件路径
        file_path = os.path.join(upload_path, date_path, file_name)  # upload/2024/10/13\工作簿1.xlsx

        # 可保存文件路径
        can_save_path = default_storage.get_available_name(file_path)  # upload/2024/10/13/工作簿1.xlsx
        print(can_save_path)

        # 保存
        save_path = default_storage.save(can_save_path, upload_obj)  # upload/2024/10/13/工作簿1.xlsx

        # 获取相对url(本地路径)
        local_url = default_storage.url(save_path)

        # 获取绝对url
        abs_url = request.build_absolute_uri(local_url)

        context = {
            'local_path': local_url,
            'url': abs_url
        }

        return Response(context)

image

posted @ 2024-10-07 17:04  一只大学生  阅读(51)  评论(0)    收藏  举报