質問するログイン新規登録

回答編集履歴

1

コメントへの回答を追記

2023/07/13 09:19

投稿

FiroProchainezo
FiroProchainezo

スコア2443

answer CHANGED
@@ -35,4 +35,29 @@
35
35
 
36
36
  1つずつ個別に解決して、最後に組み合わせれば解決可能な問題と思います。
37
37
 
38
+ ## 2023/07/13追記
38
39
 
40
+ > send_fileでこのサーバーPCのディレクトリを指定することでwebアプリに接続しているクライアントPCにtest.txtがダウンロードされると考えていましたが間違っているのでしょうか。
41
+
42
+ 文面だけ考えると、認識の通りですが、たぶん間違っています。
43
+
44
+ 以下を参照ください。
45
+
46
+ [flask.send_file](https://msiz07-flask-docs-ja.readthedocs.io/ja/latest/api.html?highlight=send_file#flask.send_file)
47
+
48
+ > path_or_file (Union[os.PathLike, str, BinaryIO]) -- The path to the file to send, relative to the current working directory if a relative path is given. Alternatively, a file-like object opened in binary mode. Make sure the file pointer is seeked to the start of the data.
49
+
50
+ 訳:path_or_file (Union[os.PathLike, str, BinaryIO]) -- 送信するファイルへのパス。相対パスが与えられている場合は、現在の作業ディレクトリからの相対パス。あるいは、バイナリモードでオープンされたファイルライクオブジェクト。ファイルポインタがデータの先頭にシークされることを確認してください。
51
+
52
+ 「相対パスが与えられている場合は」と訳されていますが、昔試した時はたしか、ここは相対パスかBytesIOしか設定できなかったはずです。
53
+ というか、絶対パスは期待通り動かなかったような記憶があります。
54
+ また、この相対パスは、Flaskのルートファイル(app.py)より上のフォルダだとダメだった記憶があります。(例えば、相対パスで`../../`みたいなのはダメだった)
55
+
56
+ そのため、SSHでDLするファイルは、Flaskのapp.pyがあるフォルダ(カレントフォルダ)より下に配置する必要があります。
57
+
58
+ Flaskのapp.pyは、Desktopでは動かしていないんでしょうか?
59
+ とりあえず、templatesの兄弟フォルダ(例えば、downloads)を作って、そこにtest.txtを置いて試して見てはどうでしょうか
60
+
61
+
62
+
63
+