无法将文件从Android应用程序上传到Flask Server,但在从Web UI上传时工作

时间:2017-11-15 06:43:20

标签: java android python python-2.7 flask

我正在尝试将文件从我的Android应用上传到Flask服务器。 Android Studio上的logcat显示-1,但我无法在服务器上看到上传的文件。

以下是我从http://flask.pocoo.org/docs/0.12/patterns/fileuploads/提到的烧瓶代码:

I/uploadFile: HTTP Response is : OK: 200

当我使用Web界面上传文件时,这可以正常工作,我可以在服务器上查看该文件。

当我尝试从Android应用上传文件时出现问题。这是java代码:

私有类UploadTask扩展AsyncTask {     私有上下文上下文;

import os
from flask import Flask, request, redirect, url_for, jsonify
from werkzeug.utils import secure_filename

UPLOAD_FOLDER = '/Users/Vishwak/PycharmProjects/BraiNet/'
ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'}

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER


def allowed_file(filename):
    return '.' in filename and \
        filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS


@app.route('/', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        print request
        print request.values
        # check if the post request has the file part
        if 'file' not in request.files:
            # flash('No file part')
            return redirect(request.url)
        print(request.files['file'])
        file = request.files['file']
        # if user does not select file, browser also
        # submit a empty part without filename
        if file.filename == '':
            print(file)
            # flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            print(file)
            print(file.filename)
            filename = secure_filename(file.filename)
            # print filename
            print(app.config['UPLOAD_FOLDER'])
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            return redirect(url_for('upload_file',
                                filename=filename))
    return '''
    <!doctype html>
    <title>Upload new File</title>
    <h1>Upload new File</h1>
    <form method=post enctype=multipart/form-data>
    <p><input type=file name=file>
    <input type=submit value=Upload>
    </form>
    '''
if __name__ == '__main__':
    app.run()

我是Java的新手,我不太了解我在Android代码中出错的地方以及我需要更改才能使其工作。

有关更改Flask或Android代码的任何反馈都将非常感谢。

0 个答案:

没有答案