質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

受付中

flaskでpost fileをしようとするとinternal server errorが発生してしまう

dampo_t
dampo_t

総合スコア0

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1回答

0評価

0クリップ

4097閲覧

投稿2016/10/17 14:45

aws ec2 ubuntuにて、flaskでアプリケーションを構築しているのですが、ファイルアップロードをうまく行うことができません。

* ローカル(Mac OS)で実行すると期待通りの動作をしますので、apache2の設定に問題があるのではないかと思っています。

* 現在の状態としては最初のページは表示される(Upload new Fileのページ)のですが、ファイルアップロードをしようとすると、Internal Server Errorとなってしまい、SAVEDが帰ってきません。

python

import os from flask import Flask, request, redirect, url_for from werkzeug\.utils import secure_filename UPLOAD_FOLDER = '\./upload_pdf' ALLOWED_EXTENSIONS = set\(\['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\] in ALLOWED_EXTENSIONS @app\.route\('/', methods=\['GET', 'POST'\]\) def upload_file\(\): if request\.method == 'POST': # check if the post request has the file part if 'file' not in request\.files: flash\('No file part'\) return redirect\(request\.url\) file = request\.files\['file'\] # if user does not select file, browser also # submit a empty part without filename if file\.filename == '': flash\('No selected file'\) return redirect\(request\.url\) if file and allowed_file\(file\.filename\): filename = secure_filename\(file\.filename\) print os\.path\.join\(app\.config\['UPLOAD_FOLDER'\], filename\) file\.save\(os\.path\.join\(app\.config\['UPLOAD_FOLDER'\], "upload\.pdf"\)\) return "SAVED" return ''' <!doctype html> <title>Upload new File</title> <h1>Upload new File</h1> <form action="" method=post enctype=multipart/form-data> <p><input type=file name=file> <input type=submit value=Upload> </form> ''' if __name__ == '__main__': app\.debug = True app\.run\(host='0\.0\.0\.0'\)

apache2 設定ファイル

<VirtualHost \*:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself\. This is used when creating # redirection URLs\. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host\. For the default virtual host \(this file\) this # value is not decisive as it is used as a last resort host regardless\. # However, you must set it for any further virtual host explicitly\. #ServerName www\.example\.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html WSGIDaemonProcess flaskapp threads=5 WSGIScriptAlias / /var/www/html/flaskapp/flaskapp\.wsgi WSGIPassAuthorization on <Directory flaskapp> WSGIProcessGroup flaskapp WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> # Available loglevels: trace8, \.\.\., trace1, debug, info, notice, warn, # error, crit, alert, emerg\. # It is also possible to configure the loglevel for particular # modules, e\.g\. #LogLevel info ssl:warn ErrorLog \${APACHE_LOG_DIR}/error\.log CustomLog \${APACHE_LOG_DIR}/access\.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host\. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf"\. #Include conf-available/serve-cgi-bin\.conf </VirtualHost>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。