# 处理上传文件的函数 def upload(request): """ 保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。 但当上传文件很大时,django会把上传文件写到临时文件中,然后存放到系统临时文件夹中。 :param request: :return: """ if request.method == "POST": print(request.FILES) print(request.FILES["upload_file"].name) # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值 filename = request.FILES["upload_file"].name # # 在项目目录下新建一个文件 with open(filename, "wb") as f: # 从上传的文件对象中一点一点读 for i in request.FILES["upload_file"].chunks(): # 写入本地文件 f.write(i) return HttpResponse("上传OK") else:
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/upload/" method="post" enctype="multipart/form-data"> <input type="file" name="upload_file"> {# <input type="file" name="upload_file2">#} <input type="submit" value="开始上传"> </form> </body> </html>