WEBサイトのフロントエンドから新規のディレクトリを作るには?
フロントエンドから新規のディレクトリを作るボタンみたいなのを作りたいです。
どうしたらいいですか?
出来たらディレクトリ名も自由に決められるようにしたいです。
フロントエンドから新規のディレクトリを作るボタンみたいなのを作りたいです。
どうしたらいいですか?
出来たらディレクトリ名も自由に決められるようにしたいです。
root
|- css
|- js
|- index.html
|- about
|- column
|- user-updates
上記のような例示構成で想定します。
user-updates
という指定のディレクトリに、サイト訪問者が任意のディレクトリ(フォルダ)をアップロードできるようにしたい。ということでしょうか?
質問意図を履き違えていたら申し訳ないですが、
上記だと以下で実装できるかもです(※筆者未検証です)
あなたの言う「WEBサイトのフロントエンド」って何ですか? ブラウザで動く JavaScript で PC のファイルシステムを操作してしてディレクトリを作りたいと言ってますか?
@kurakasi0802
Questioner
レンタルサーバーでWEBサイトを運営していて、そのWebサイトに訪れた人が指定の場所に任意の名前のディレクトリ(フォルダ)を作ることが出来るようにしたいという意味です。
その「指定の場所」というのはどこですか?
サーバーのことなら普通そんなことは考えもしないから、ブラウザが動いている PC のファイルシステムのことかな?
そうだとしてもやっぱりそんなことは普通は考えないのですが・・・
そもそも何のためにフォルダを作りたいのですか? XY 問題になっているように思えます。X, Y 両方書いてください。
ローカルファイルシステムへの書き込みはセキュリティ上の懸念から結構制約があります.詳しいことはこの辺を.
現状この機能はChromiumに限られた実装でありFirefoxやSafariでは使用できません.
サーバー上のファイルシステムを操作させる際はもっと慎重に設計してください.そもそもファイルの読み書きを遠隔で行えてしまうのがリスクですので…
FTPサーバを構築したらいいのでは?
フロントエンドに加えて、ディレクトリ作成機能をもつバックエンドを用意するような実現方法となるように思います
例として、jupyter notebookではフロントエンドの操作からディレクトリを作れるのでどうやっているのか調べました
jupyter notebookはバックエンドにjupyter serverを動作させていて、フロントエンドからの要求に対して実際にディレクトリを作るのはjupyter serverです
処理の流れとしてはフロントエンドのjupyter notebookからはjupyter serverのAPIエンドポイント/api/contents/<path>
に対して、作成するディレクトリを指定したJSONをPUTします
jupyter serverの方ではこの要求を受けて、最終的にはos.mkdirが呼び出されてディレクトリが作られます
async def _save_directory(self, os_path, model, path=""):
"""create a directory"""
if not self.allow_hidden and is_hidden(os_path, self.root_dir):
raise web.HTTPError(400, "Cannot create hidden directory %r" % os_path)
if not os.path.exists(os_path):
with self.perm_to_403():
await run_sync(os.mkdir, os_path)
elif not os.path.isdir(os_path):
raise web.HTTPError(400, "Not a directory: %s" % (os_path))
else:
self.log.debug("Directory %r already exists", os_path)