2016-05-10 3 views
-1

デジタルオーシャンアカウントからコードを実行しようとすると「内部サーバーエラー」が発生します。私はコードをローカルで実行しようとしましたが、うまくいきました。また、www.pythonanywhere.comで試してみましたが、エラーもなく正常に動作します。フラスコのアップロードがVPSで動作しない

import os 
from flask import Flask, render_template, request 
app = Flask(__name__) 
APP_ROOT = os.path.dirname(os.path.abspath(__file__)) 
@app.route("/") 
def index(): 
    return render_template("upload.html") 

@app.route("/upload", methods = ['POST']) 
def upload(): 
    target = os.path.join(APP_ROOT, 'images/') 
    print(target) 

    if not os.path.isdir(target): 
     os.mkdir(target) 

    for file in request.files.getlist("file"): 
     print(file) 
     filename = file.filename 
     destination = "/".join([target, filename]) 
     print(destination) 
     file.save(destination) 
    return render_template("complete.html") 

if __name__ == "__main__": 
    app.run() 

このコードは、フォルダを作成し、ローカルとどこかのpythonの両方で完全にそこにファイルをアップロードしますが、それは私のデジタル海のVPSのためにそうではないだろう、なぜ私がうまくできません。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Upload</title> 

</head> 
<body> 
    <h1> File Uploader </h1> 
    <form id-"upload-form" action="{{ url_for('upload') }}" method="POST" enctype="multipart/form-data"> 
     <input type="file" name="file" accept="image/*" multiple> 
     <input type="submit" value="send"> 
    </form> 

</body> 
</html> 

と私の「complete.htmlは、」基本的に私はそれを知っているように、「それは働いていた」と言ってただparagraghタグであるhasnt:

i「がupload.html」のために使用されているhtmlコードはありますエラーが発生しました..

誰かに同様の問題が発生しましたか?

+0

ロギングを有効にし、完全なトレースバックを投稿し、エラーなしでアップロードしています。 http://stackoverflow.com/questions/32722143/flask-application-traceback-doesnt-show-up-in-server-log – davidism

答えて

0

これを解決しました。それはファイルのパーミッションの問題であった。この問題を解決するには、ファイルをアップロードすると、入力したいディレクトリに移動する必要があります。

chmod -R 777 . 

は今のファイルが

+0

これは本当に危険なアドバイスです。あなたのアプリを実行しているユーザーだけに、xではなくrw権限を与えます。 – davidism

関連する問題