- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
尝试将文件上传到服务器,但 ImmutableMultiDict 对象返回空。
上传.html
<html>
<head>
<title>Upload File Ajax</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#upload-file-btn').click(function() {
var form_data = new FormData($('#upload-file')[0]);
form_data.append('file', $('input[type=file]')[0].files[0]);
console.log(form_data)
$.ajax({
url: '/uploadajax',
data: form_data,
type: 'POST',
contentType: false,
cache: false,
processData: false,
async: false,
success: function(data) {
console.log('Success!');
// console.log(data);
},
});
});
});
</script>
</head>
<body>
<form action="" name="upload-file" id="upload-file" method="post" enctype="multipart/form-data">
<fieldset>
<label for="file">Select a file</label>
<input name="file" id="file" type="file">
</fieldset>
<fieldset>
<button id="upload-file-btn" type="button">Upload</button>
</fieldset>
</form>
</body>
</html>
flask
app = Flask(__name__)
@app.route('/')
def index():
return render_template("upload.html")
@app.route('/uploadajax', methods = ['POST'])
def upldfile():
logging.debug('request.method : %s', request.method)
logging.debug('request.files : %s', request.files)
logging.debug('request.args : %s', request.args)
logging.debug('request.form : %s', request.form)
logging.debug('request.values : %s', request.values)
logging.debug('request.headers : %s', request.headers
logging.debug('request.data : %s', request.data)
upload_files = request.files.getlist("file")
logging.debug('upload_files : %s', upload_files)
file_val = request.files
for k, v in file_val.items() :logging.debug('key : %s -- value : %s ', k, v)
# if request.method == 'POST':file_val = request.files['file']
return render_template('upload.html')
if __name__ == '__main__':
app.run(host='127.0.0.1', debug=True, port=2345, use_reloader=True)
这是日志数据
016-05-03 00:05:30,500 - root - DEBUG - request.method : POST
2016-05-03 00:05:30,500 - root - DEBUG - request.files : ImmutableMultiDict([])
2016-05-03 00:05:30,500 - root - DEBUG - request.args : ImmutableMultiDict([])
2016-05-03 00:05:30,501 - root - DEBUG - request.form : ImmutableMultiDict([])
2016-05-03 00:05:30,501 - root - DEBUG - request.values : CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([])])
2016-05-03 00:05:30,501 - root - DEBUG - request.headers : Referer: http://127.0.0.1:2345/
Origin: http://127.0.0.1:2345
Content-Length: 368
User-Agent: Mozilla/5.0....
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Host: 127.0.0.1:2345
Accept: */*
Accept-Language: en-US,en;q=0.8
Content-Type: false
Accept-Encoding: gzip, deflate2016-05-03 03:13:58,236 - root - DEBUG - request.data : ------WebKitFormBoundaryA8jmfBTRKGJFtMS
Content-Disposition: form-data; name="file"; filename="test_upload.txt"
Content-Type: text/plain
qbcdefgh
abcdefgh
------WebKitFormBoundaryA8jmfBTRKGJFtMS
Content-Disposition: form-data; name="file"; filename="test_upload.txt"
Content-Type: text/plain
qbcdefgh
abcdefgh
------WebKitFormBoundaryA8jmfBTRKGJFtMS--
2016-05-03 00:05:30,501 - root - DEBUG - upload_files : []
最佳答案
这是你的 jQuery
版本太旧导致的。
当我使用 2.1.1 时,代码运行正常。
顺便说一句,您不需要form_data.append
。
关于python - 从 jQuery 请求数据中获取一个空的 ImmutableMultiDict 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36995516/
这是我的代码: @user_bp.route('/band', methods=['GET', 'POST']) def band_details(): from include.form.U
这个问题在这里已经有了答案: In Flask convert form POST object into a representation suitable for mongodb (6 个答案)
我收到的数据是 ImmutableMultiDict ImmutableMultiDict([('slim[]', '{"server":[{"status":"SUCCESS"}],"meta":{
我写了一个小 flask 文件: myapp.py @APP.route('/login', methods=['GET','POST']) def login(): return flask
您好,我正在尝试添加一个新的键值对,但我收到错误消息TypeError: 'ImmutableMultiDict' objects are immutable 我尝试添加新键的变量来自 request
有人可以说这段代码有什么问题吗?我得到的错误: TypeError: 'ImmutableMultiDict' object is not callable def login(): error =
尝试将文件上传到服务器,但 ImmutableMultiDict 对象返回空。 上传.html Upload File Ajax $(function() { $('#uploa
address_dict = {'address': {'US': 'San Francisco', 'US': 'New York', 'UK': 'London'}} 当通过请求发送上述参数时,如
Python3.6.1::Anaconda 4.4.0(64bit) + Flask 0.12.2 我像这样使用 jQuery 发布我的数据 前端 $.ajax({ url:'/immutab
我正在从 http.server 过渡到 Flask。我使用 AJAX 上传图像现在已损坏。这正在运行 Python 3。 无效的故障排除: 我已在 Ajax 请求中包含 multipart/form
我是一名优秀的程序员,十分优秀!