亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用ajax和flask上傳不同擴展名的文件

使用ajax和flask上傳不同擴展名的文件

忽然笑 2023-10-18 16:10:53
我正在使用flask通過ajax上傳文件,代碼是:app = Flask(name) app.config["TEMPLATES_AUTO_RELOAD"] = True CORS(app) app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * [email protected]("/upload//<element_id>", methods=['GET', 'POST'])def ws_product_upload(element_id):    print("Starting....")    if request.is_xhr:        print("xhr request received")    if request.method == 'POST':        f = request.files['file']        process_inmemory( element_id, file=f)        print("file received by post")        if request.is_xhr:            print("xhr request received inside post")            return json.dumps({'result': True})        return json.dumps({'result': True})    return 'file uploaded needs a post call'當我發送圖像時,一切正常,但使用簡單的 txt 文件時,會失敗。我努力了:app.config["UPLOADED_FILES_ALLOW"] = ['.txt']  # with [] and with out with . and without and nothinapp.config["UPLOADED_FILES_DENY"] = 'exe'我想用幾乎所有的 mime 類型和擴展來做到這一點我正在使用nginx + Gunicorn(不知道是否相關)女巫才是正確的做法
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

所以 - 這是一些猜測:-)

“UPLOADED_FILES_ALLOW”和“UPLOADED_FILES_DENY”是兩個使用的環境變量名稱Flask-Uploads- 這就是為什么我問你是否使用它,但你沒有。

“UPLOAD_EXTENSIONS”是 Miguel Grinberg 的大型教程中使用的環境變量?

我假設您遵循了 Miguel Grinberg 的教程,并且在您的(截至目前)隱藏process_inmemory函數中執行了與教程中類似的操作,例如像if file_ext not in current_app.config['UPLOAD_EXTENSIONS']:.

這實際上是唯一合理的解釋 - 直到你真正向我們展示你的完整代碼。


查看完整回答
反對 回復 2023-10-18
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

問題不是上傳,問題是 chrome 和 cors,我不明白為什么,但上傳圖像它可以工作。


解決方案是在函數之前放置一個 cors 裝飾器cross_origin,如下所示:


from flask_cors import CORS, cross_origin

app = Flask(__name__)

CORS(app)



@app.route("/upload//<element_id>", methods=['GET', 'POST'])

@cross_origin(supports_credentials=True, origins=["https://blabla.com","http://blabla:4202"])

def ws_product_upload(element_id):

    print("Starting....")

    if request.is_xhr:

        print("xhr request received")

    if request.method == 'POST':


查看完整回答
反對 回復 2023-10-18
  • 2 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號