在下面的代码中,我试图导入一个.dat文件,该文件具有要在我的Python Flask Web服务器中运行的IQ数据。该程序首先正常运行,然后当我浏览到本地视图然后点击提交时,程序将返回此错误:
错误回溯:
filename
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 138-727-058
127.0.0.1 - - [22/Aug/2019 10:31:59] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [22/Aug/2019 10:32:04] "POST /getfile HTTP/1.1" 500 -
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2463, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2449, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1866, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/fit-pc/Desktop/python-web-server/Experiment-8/app.py", line 60, in getfile
tb.getfile(request.files.get('filename'))
File "/home/fit-pc/Desktop/python-web-server/Experiment-8/app.py", line 21, in getfile
self.blocks_file_source_0 = blocks.file_source(gr.sizeof_float*1, filename, True)
File "/usr/lib/python2.7/dist-packages/gnuradio/blocks/blocks_swig0.py", line 1092, in make
return _blocks_swig0.file_source_make(itemsize, filename, repeat)
TypeError: in method 'file_source_make', argument 2 of type 'char const *'
127.0.0.1 - - [22/Aug/2019 10:32:04] "GET /getfile?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1" 200 -
127.0.0.1 - - [22/Aug/2019 10:32:04] "GET /getfile?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 -
127.0.0.1 - - [22/Aug/2019 10:32:04] "GET /getfile?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 -
127.0.0.1 - - [22/Aug/2019 10:32:04] "GET /getfile?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1" 200
app.py代码:
from __future__ import print_function
from gnuradio import analog
from gnuradio import audio
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import gr
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser
class TopBlock22(gr.top_block):
def __init__(self, filename ):
gr.top_block.__init__(self, "Top Block 22")
def getfile(self, filename):
self.filename = filename
self.blocks_file_source_0 = blocks.file_source(gr.sizeof_float*1, filename, True)
self.audio_sink = audio.sink(32000, '', True)
self.connect((self.blocks_file_source_0, 0), (self.audio_sink, 0))
# -----------------------------------------------------------------------------
from flask import Flask, flash, request, redirect, jsonify, render_template_string
app = Flask(__name__)
tb = TopBlock22('filename')
print('filename')
tb.start()
@app.route("/")
def index():
args_filename = request.args.get('filename', '- empty -')
return render_template_string('''
Previous filename: {{ filename }}
<hr>
<form action="getfile" method="POST" enctype="multipart/form-data">
Project file path: <input type="file" name="filename"><br>
<input type="submit" value="Submit">
</form>
''', filename=args_filename)
@app.route('/getfile', methods=['GET','POST'])
def getfile():
#print('args:', request.args)
#print('form:', request.form)
#print('files:', request.files)
#tb.getfile(filename)
tb.getfile(request.files.get('filename'))
return (filename)
if result:
result.save(result.filename) # TODO: save with unique name which couldn't overwrite file with passwords
return redirect('/?filename={}'.format(result.filename))
return redirect('/')
return (filename)
if __name__ == '__main__':
app.run(debug=True)
发生错误的位置的图像:
任何帮助解决该问题的帮助将受到高度赞赏。