Flask文件上传失败,出现404错误

时间:2016-04-11 18:35:07

标签: python file flask upload http-status-code-404

在遵循有关如何上传文件的Flask文档/教程时,我使用了以下代码:

main.py:

try:
  # import python modules
  import sys
  import config
  import os
  import inspect
  import datetime
  from flask import Flask,render_template,jsonify,redirect,url_for,request
  from werkzeug import secure_filename
except ImportError as e:
  print "Import error:", e, "\nAborting the program", __version__
  sys.exit()

app = Flask(__name__)
app.config.from_object('config.BaseConfig')

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

@app.route("/upload", methods=['POST'])
def upload():
  if request.method == 'POST':
     file = request.files['file']
     if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)  
        filename = os.path.join(app.config['CSV_FOLDER'], filename)
        return jsonify({"success": "True", "post": "none"})
     else:
        return jsonify({"success": "False", "post": "Invalid filename"})
  else:
     return jsonify({"success": "False", "post": "POST request required!"})

config.py:

class BaseConfig(object):
    DEBUG = True
    TESTING = False
    PROPAGATE_EXCEPTIONS = True
    SECRET_KEY = ""
    CSV_FOLDER = "static/csv"

以上在Windows机器上的localhost上运行时效果很好。当我将其上传到我的Hostmonster网站时,我得到了一个404 http状态代码(找不到页面)。

这是我的Hostmonster .htaccess文件(存储在/ GKS中):

AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteBase /GKS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ gks.fcgi/$1 [QSA,L]

这是我在Hostmonster网站上的文件夹结构的图片: Hostmonster folder structure 如果我查看浏览器开发者控制台,我会看到这个添加' l错误消息:"主线程上的同步XMLHttpRequest由于其对最终用户体验的不利影响而被弃用。如需更多帮助,请查看https://xhr.spec.whatwg.org/。"。不确定这与我的文件上传有什么关系。

请帮助我,因为我正试图弄清楚这个问题。“

1 个答案:

答案 0 :(得分:0)

我终于找到了我的问题!我在我的Javascript中使用了url'/ upload'。无论出于何种原因在Localhost开发环境中工作,但不在现场网站上。当我改为“上传”时,一切都很好。

希望这将有助于将来。