html:
千萬不要忘了寫 enctype="multipart/form-data"
<div class="page-container">
<form id="upload_form" action="{% url 'examapp:上傳excel' %}" method="POST"
enctype="multipart/form-data">
{% csrf_token %}
<input id="upload" type="file" style="width: 50%" name="file" id="filename">
<button class="btn" type="button" onclick="Upload()">提交</button>
</form>
</div>
通過JS判斷上傳文件是否爲空:
JS:
function Upload() {
var fileInput = $('#upload').get(0).files[0];
console.info(fileInput);
if (fileInput) {
$("#upload_form").submit();
} else {
alert("請選擇上傳文件!");
}
}
view.py:
import padans as pd
import numy as np
def upload_result(request):
if request.method == 'POST':
f = request.FILES.get('file')
excel_type = f.name.split('.')[1]
if excel_type in ['xlsx', 'xls']:
user_data = pd.read_excel(f)
try:
user_x = user_data.iloc[:, 2:5] # 特徵值
return redirect("examapp:展示預測成績")
except:
error = '解析excel文件或者數據插入錯誤'
return render(request, "examsystem/result_predict.html", {"error": error})
else:
error = '上傳文件類型錯誤!'
return render(request, 'examsystem/result_predict.html', {'error': error})