Djano

上传文件

views

# 上传文件
def upload(request):
    if request.method == 'POST':
        # 1. 取到用户发送的数据
        print(request.POST)
        print(request.FILES)
        file_obj = request.FILES.get('file_name')
        print(file_obj.name)
        # 判断当前是否存在
        file_name = file_obj.name
        if os.path.exists(os.path.join(settings.BASE_DIR, file_name)):
            # 如果存在同名的文件
            name, suffix = file_name.split('.')
            name += '2'
            file_name = name + '.' + suffix
        # 从上传文件对象里 一点一点读取数据,写到本地
        with open(file_name, 'wb') as f:
            # 从上传文件对象里 一点一点读取数据
            for chunk in file_obj.chunks():
                f.write(chunk)
    # 1. 第一次GET请求来,应该给用户返回一个页面,让用户选择文件
    return render(request, 'upload.html')

templates

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta http-equiv="content-Type" charset="UTF-8">
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>上传文件示例</title>
</head>
<body>


<h1>上传文件</h1>
<form action="" method="post" enctype="multipart/form-data">
    <input type="text" name="test">
    <input type="file" name="file_name">
    <input type="submit">
</form>

</body>
</html>

  

  

幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
原文地址:https://www.cnblogs.com/TodayWind/p/13815840.html