在遵循有关如何上传文件的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/。"。不确定这与我的文件上传有什么关系。
请帮助我,因为我正试图弄清楚这个问题。“
答案 0 :(得分:0)
我终于找到了我的问题!我在我的Javascript中使用了url'/ upload'。无论出于何种原因在Localhost开发环境中工作,但不在现场网站上。当我改为“上传”时,一切都很好。
希望这将有助于将来。