Toggle navigation
Toggle navigation
This project
Loading...
Sign in
万朱浩
/
Venue-Ops
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
juanboy
2024-10-18 22:22:49 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e41334cd0482ba3264c71de1427b05dc68202921
e41334cd
1 parent
96af98f9
app final update
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
50 additions
and
42 deletions
BCAT_front/app.py
BCAT_front/app.py
View file @
e41334c
...
...
@@ -21,17 +21,57 @@ def upload_form():
"""显示文件上传表单"""
return
render_template
(
'main.html'
)
@app.route
(
'/status/<filename>'
)
def
check_status
(
filename
):
"""检查文件处理状态,并返回状态和统计信息"""
status_info
=
processing_status
.
get
(
filename
,
{
'status'
:
'processing'
,
'stats'
:
None
})
return
json
.
dumps
(
status_info
)
@app.route
(
'/upload'
,
methods
=
[
'POST'
])
def
upload_file
():
"""处理文件上传和启动异步处理"""
if
'file'
not
in
request
.
files
:
flash
(
'没有文件部分'
,
'error'
)
return
redirect
(
url_for
(
'upload_form'
))
file
=
request
.
files
[
'file'
]
if
file
.
filename
==
''
:
flash
(
'未选择文件'
,
'error'
)
return
redirect
(
url_for
(
'upload_form'
))
if
file
and
allowed_file
(
file
.
filename
):
filename
=
secure_filename
(
file
.
filename
)
filepath
=
os
.
path
.
join
(
app
.
config
[
'UPLOAD_FOLDER'
],
filename
)
filepath
=
os
.
path
.
abspath
(
filepath
)
# 转换为绝对路径
try
:
file
.
save
(
filepath
)
print
(
f
'文件已保存到 {filepath}'
)
# 初始化处理状态
processing_status
[
filename
]
=
{
'status'
:
'processing'
,
'stats'
:
None
}
# 启动后台线程处理文件
thread
=
threading
.
Thread
(
target
=
handle_file_processing
,
args
=
(
filepath
,
filename
))
thread
.
start
()
# 重定向到等待页面,并传递文件名以跟踪状态
return
redirect
(
url_for
(
'waiting_page'
,
filename
=
filename
))
except
Exception
as
e
:
flash
(
f
'文件上传失败: {str(e)}'
,
'error'
)
return
redirect
(
url_for
(
'upload_failure'
))
else
:
flash
(
'文件类型不允许'
,
'error'
)
return
redirect
(
url_for
(
'upload_form'
))
@app.route
(
'/waiting/<filename>'
)
def
waiting_page
(
filename
):
"""显示等待页面,并传递文件名"""
return
render_template
(
'waiting.html'
,
filename
=
filename
)
@app.route
(
'/status/<filename>'
)
def
check_status
(
filename
):
"""检查文件处理状态,并返回状态和统计信息"""
status_info
=
processing_status
.
get
(
filename
,
{
'status'
:
'processing'
,
'stats'
:
None
})
return
json
.
dumps
(
status_info
)
@app.route
(
'/upload-success'
)
def
upload_success
():
"""文件处理成功页面"""
...
...
@@ -97,40 +137,8 @@ def handle_file_processing(filepath, filename):
'stats'
:
None
}
@app.route
(
'/upload'
,
methods
=
[
'POST'
])
def
upload_file
():
"""处理文件上传和启动异步处理"""
if
'file'
not
in
request
.
files
:
flash
(
'没有文件部分'
,
'error'
)
return
redirect
(
url_for
(
'upload_form'
))
file
=
request
.
files
[
'file'
]
if
file
.
filename
==
''
:
flash
(
'未选择文件'
,
'error'
)
return
redirect
(
url_for
(
'upload_form'
))
if
file
and
allowed_file
(
file
.
filename
):
filename
=
secure_filename
(
file
.
filename
)
filepath
=
os
.
path
.
join
(
app
.
config
[
'UPLOAD_FOLDER'
],
filename
)
filepath
=
os
.
path
.
abspath
(
filepath
)
# 转换为绝对路径
try
:
file
.
save
(
filepath
)
print
(
f
'文件已保存到 {filepath}'
)
# 初始化处理状态
processing_status
[
filename
]
=
{
'status'
:
'processing'
,
'stats'
:
None
}
# 启动后台线程处理文件
thread
=
threading
.
Thread
(
target
=
handle_file_processing
,
args
=
(
filepath
,
filename
))
thread
.
start
()
# 重定向到等待页面,并传递文件名以跟踪状态
return
redirect
(
url_for
(
'waiting_page'
,
filename
=
filename
))
except
Exception
as
e
:
flash
(
f
'文件上传失败: {str(e)}'
,
'error'
)
return
redirect
(
url_for
(
'upload_failure'
))
else
:
flash
(
'文件类型不允许'
,
'error'
)
return
redirect
(
url_for
(
'upload_form'
))
\ No newline at end of file
if
__name__
==
'__main__'
:
# 如果上传文件夹不存在,则创建
if
not
os
.
path
.
exists
(
app
.
config
[
'UPLOAD_FOLDER'
]):
os
.
makedirs
(
app
.
config
[
'UPLOAD_FOLDER'
])
app
.
run
(
debug
=
True
)
...
...
Please
register
or
login
to post a comment