1. 程式人生 > >文件上傳的幾種方法

文件上傳的幾種方法

如果 文件中 uri add 臨時文件 div -c 內存 mon

一、enctype="multipart/form-data" <!DOCTYPE html> <html> <head> <title>test</title> </head> <body> <form action="/test/" method="post" enctype="multipart/form-data"> <!--如果不加這個的話,提交的數據會以鍵值對提交--> {% csrf_token %} 文件:<input type="file" name=‘test‘><br>
<input type="submit" value="提交"> </form> </body> </html> def test(request): if request.method == ‘POST‘: file = request.FILES.get(‘test‘) with open(file.name, ‘wb‘) as f: for line in file: f.write(line) return render(request, ‘test.html‘)
二、.chunks() def upload(request): """ 保存上傳文件前,數據需要存放在某個位置。默認當上傳文件小於2.5M時,django會將上傳文件的全部內容讀進內存。從內存讀取一次,寫磁盤一次。 但當上傳文件很大時,django會把上傳文件寫到臨時文件中,然後存放到系統臨時文件夾中。 :param request: :return: """ if request.method == "POST": # 從請求的FILES中獲取上傳文件的文件名,file為頁面上type=files類型input的name屬性值
filename = request.FILES["file"].name # 在項目目錄下新建一個文件 with open(filename, "wb") as f: # 從上傳的文件對象中一點一點讀 for chunk in request.FILES["file"].chunks(): # 寫入本地文件 f.write(chunk) return HttpResponse("上傳OK") <!DOCTYPE html> <html> <head> <title>test</title> </head> <body> <form action="/test/" method="post"> {% csrf_token %} 文件:<input type="file" name=‘test‘> <input type="submit" value="提交"> </form> </body> </html>

文件上傳的幾種方法