السلام عليكم
واجهتني مشكله كيف اتحقق من حجم ملف معين قبل التعامل معه في bottle
#!/usr/bin/python
# -*- coding: utf-8 -*-
from bottle import route, run, request
@route('/upload')
def upload_form():
return '''<form action="/upload" method="post" enctype="multipart/form-data">
<input type="text" name="name" />
<br>
<input type="file" name="data" />
</br>
<input type="submit" value="upload" />
</from>'''
@route('/upload', method='POST')
def do_upload():
name = request.forms.get('name')
data = request.files.get('data')
if name!=None and data !=None:
raw = data.file.read() # This is dangerous for big files
filename = data.filename
return "Hello %s! You uploaded %s (%d bytes)." % (name, filename, len(raw))
run(host='localhost', port=8080)يعني كيف أتحقق من حجم الملف قبل قرائته بدون تحميله بالذاكره
raw = data.file.read() # This is dangerous for big files
فلو رفع أحدهم ملف بحجم كبير يتخطى حجم الذاكره وبالتالي يعمل كراش للسيرفر
"تم رفع الملف في المرفق لمن أراد التجريب"