diff --git a/auto_pt/urls.py b/auto_pt/urls.py
index 77ac960..ace8384 100644
--- a/auto_pt/urls.py
+++ b/auto_pt/urls.py
@@ -32,6 +32,7 @@ urlpatterns = [
path(r'get_log_list', views.get_log_list, name='get_log_list'),
path(r'show_log_list', views.show_log_list, name='show_log_list'),
path(r'get_log_content', views.get_log_content, name='get_log_content'),
+ path(r'download_log_file', views.download_log_file, name='download_log_file'),
path(r'remove_log_api', views.remove_log_api, name='remove_log_api'),
path(r'get_site_list', views.get_site_list, name='get_site_list'),
path(r'edit_my_site', views.edit_my_site, name='edit_my_site'),
diff --git a/auto_pt/views.py b/auto_pt/views.py
index 46d0c3d..e7d34a2 100644
--- a/auto_pt/views.py
+++ b/auto_pt/views.py
@@ -11,7 +11,7 @@ import git
import qbittorrentapi
import transmission_rpc
from django.contrib.auth.decorators import login_required
-from django.http import JsonResponse
+from django.http import JsonResponse, FileResponse
from django.shortcuts import render
from pt_site.UtilityTool import MessageTemplate, FileSizeConvert
@@ -922,6 +922,20 @@ def remove_log_api(request):
).to_dict(), safe=False)
+def download_log_file(request):
+ try:
+ name = request.GET.get('name')
+ file_path = os.path.join(BASE_DIR, f'db/{name}')
+ response = FileResponse(open(file_path, 'rb'))
+ response['content-type'] = "application/octet-stream;charset=utf-8"
+ response['Content-Disposition'] = 'attachment; filename=' + os.path.basename(file_path)
+ return response
+ except Exception as e:
+ return JsonResponse(data=CommonResponse.error(
+ msg=f'文件不存在?!{e}'
+ ).to_dict(), safe=False)
+
+
def show_log_list(request):
return render(request, 'auto_pt/showlog.html')
diff --git a/templates/auto_pt/showlog.html b/templates/auto_pt/showlog.html
index 840072c..b60629a 100644
--- a/templates/auto_pt/showlog.html
+++ b/templates/auto_pt/showlog.html
@@ -38,9 +38,17 @@
v-for="(name,index) in names" :index="index" :label="name" :value="name">
- 查看日志
-
- 删除日志
+ 下载
+
+
+ 查看
+
+
+ 删除
+
@@ -138,6 +146,36 @@
});
})
},
+ downloadLog() {
+ axios({
+ method: "get",
+ headers: {
+ "content-type": "application/json", // 默认值
+ Authorization: "Bearer " + sessionStorage.getItem("access_token"),
+ },
+ url: "{% url 'download_log_file' %}" + '?name=' + this.log,
+ responseType: "blob",
+ }).then(res => {
+ console.log('日志文件', res)
+ {#let data = res.data#}
+ {#console.log(typeof res.data.data)#}
+ if (res.headers['content-type'] === 'application/octet-stream;charset=utf-8') {
+ return res.data
+ } else {
+ this.loading = false
+ this.$message({
+ type: 'warning',
+ message: '删除日志文件失败!'
+ });
+ }
+ }).catch(res => {
+ console.log('删除日志文件失败', res)
+ this.$message({
+ type: 'warning',
+ message: '删除日志文件失败!' + res
+ });
+ })
+ },
removeLog() {
if (this.log == 'logs.log') {
this.$message({