@kurakasi0802

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

WEBサイトのフロントエンドから新規のディレクトリを作るには?

フロントエンドから新規のディレクトリを作るボタンみたいなのを作りたいです。
どうしたらいいですか?
出来たらディレクトリ名も自由に決められるようにしたいです。

1 likes

6Answer

root
  |- css
  |- js
  |- index.html
  |- about
  |- column
  |- user-updates

上記のような例示構成で想定します。
user-updatesという指定のディレクトリに、サイト訪問者が任意のディレクトリ(フォルダ)をアップロードできるようにしたい。ということでしょうか?

質問意図を履き違えていたら申し訳ないですが、
上記だと以下で実装できるかもです(※筆者未検証です)

2Like

Comments

  1. @kurakasi0802

    Questioner

    私はレンタルサーバーなのでroot権限はありません。

あなたの言う「WEBサイトのフロントエンド」って何ですか? ブラウザで動く JavaScript で PC のファイルシステムを操作してしてディレクトリを作りたいと言ってますか?

1Like

Comments

  1. @kurakasi0802

    Questioner

    レンタルサーバーでWEBサイトを運営していて、そのWebサイトに訪れた人が指定の場所に任意の名前のディレクトリ(フォルダ)を作ることが出来るようにしたいという意味です。

  2. その「指定の場所」というのはどこですか?

    サーバーのことなら普通そんなことは考えもしないから、ブラウザが動いている PC のファイルシステムのことかな?

    そうだとしてもやっぱりそんなことは普通は考えないのですが・・・

    そもそも何のためにフォルダを作りたいのですか? XY 問題になっているように思えます。X, Y 両方書いてください。

  3. @kurakasi0802

    Questioner

    指定の場所は指定の場所です…
    例)example.comのfilesというディレクトリ(フォルダ)の中 ←これがこの場合の指定の場所です。
      に訪れた人が任意の名前のディレクトリ(フォルダ)を作ることが出来るようにしたいというわけです。

  4. 話が通じないようです。

    指定の場所は指定の場所です…

    「サーバー」なのか「ブラウザが動いている PC」なのかを聞いています。

    上のコメントの例「example.comのfilesというディレクトリ」からするとサーバーではないかと思いますが、であれば、ネットに多々いる悪意のあるユーザーがサーバーのファイルシステムにアクセスできて、任意にフォルダを作ることができるというのは、セキュリティ上多々問題があるので、普通そんなことはしない(考えもしない)と思いますが?

    どうしてもというなら、あなたのレンタルサーバーで動かしている Web アプリに、サーバーの OS のファイルシステムにアクセスしてフォルダを作る機能を実装し、Web アプリに必要な権限を与えるということになると思います。それができるかどうかはあなたの使っているレンタルサーバーのサポートに聞いてください。

    上でも聞きましたが、そもそも何のためにフォルダを作りたいのですか? XY 問題のような気がしますけど。

    XY 問題とは、質問者に X という課題があって、質問者が Y という解決策を考えついて Y について質問したが(質問には X は書かないで)、Y は X の解決策とはなっておらず、回答者と質問者間で話がかみ合わず、一向に解決にならないということです。

    X も書いてください。

    そうしてもらえれば、Y はできないけど、X はこうすれば実現できるというような回答が出てくるかもしれません。

  5. @kurakasi0802

    Questioner

    以前レンタルサーバーを使用していることを伝えたので、サーバーだと分かると思ったのですが…
    おっしゃる通り、わざとXは出していません。
    ありがとうございました。

  6. 以前レンタルサーバーを使用していることを伝えたので、サーバーだと分かると思ったのですが…

    そもそもサーバーでそんなことをするのは普通は考えもしないのです。理由は上に書いたセキュリティの問題があるからです。だから「レンタルサーバーでWEBサイトを運営していて」と言うのではなく、「ユーザーがサーバーのファイルシステムにアクセスできて、任意にフォルダを作る」と言ってもらわないと話が通じません。

    おっしゃる通り、わざとXは出していません。

    事情があるのかもしれませんが、それならそれで最初に聞いたとき「事情があって X は書けません」と返答してください。マナーとして

ローカルファイルシステムへの書き込みはセキュリティ上の懸念から結構制約があります.詳しいことはこの辺を.
現状この機能はChromiumに限られた実装でありFirefoxやSafariでは使用できません.

サーバー上のファイルシステムを操作させる際はもっと慎重に設計してください.そもそもファイルの読み書きを遠隔で行えてしまうのがリスクですので…

1Like

Comments

  1. @kurakasi0802

    Questioner

    ありがとうございます。
    求めていたものとは違いますが、これはこれで使ってみます。
    ちなみに、画面の高さがバージョンによって変わってしまうのですが、解決方法などご存知でしょうか?

  2. elfinder初期化時、いろいろプロパティを設定できますが、幅と高さは設定すれば固定になるでしょう。これは回答になりますか。詳細はAPIを探してください。
    https://github.com/Studio-42/elFinder/wiki/Client-configuration-options-2.1
    サンプル

    var elFinder1;
    $(function({
    	elFinder1=$("#elFinder1")
    	.elfinder({
    	"url":efw.baseurl+"/efwServlet",
    	"urlUpload":efw.baseurl+"/uploadServlet",
    	"soundPath":efw.baseurl+"/elfinder/sounds",
    	"requestType":"POST",
    	"lang":"jp",
    	"height":"480",
    	"width":"900",
    	"customData":{"home":"upload","isAbs":false,"selection":"","readonly":false,"id":"elFinder1",}})
    .elfinder("instance");});
    

    もし、efwのカスタマイズ後のelfinderを使ってみたいなら、このURLです。
    https://github.com/efwGrp/efw4.X/blob/master/help/tag.elfinder.md

  3. @kurakasi0802

    Questioner

    ありがとうございます。
    やってみます。

Comments

  1. @kurakasi0802

    Questioner

    レンタルサーバー環境です💦

他の質問でファイル転送サービスが作りたいとおっしゃっていたのでその手段を聞いているのだと推測しますが、その場合はユーザーが実際のディレクトリを作れるような実装にはしないほうがいいです。ディレクトリ名を自由に決められるようにするとセキュリティリスクに繋がります。

ファイルにはユニーク ID を振って決め打ちのディレクトリや S3 に保存し、ユーザーが入力したディレクトリ名・ファイル名はファイル ID と一緒にデータベースに保存するといったように、実際のファイル名と論理的なファイル名を切り離すべきです。

1Like

Comments

  1. @kurakasi0802

    Questioner

    こちらの質問にも答えてくださってありがとうございます。
    実際のファイル名とは変えた方がいいのですね。

Your answer might help someone💌