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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

3回答

518閲覧

パス付のファイル名を取得したい

chintao1224

総合スコア156

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2021/07/01 17:06

htmlでファイル選択を使って、パス付のファイル名を取得したいと思っています。
type="file"にしたinputを使っているのですが、どうしてもパス付になりません。

いろいろサイトを調べて、enctype="multipart/form-data"を指定すればパス付になると思いやってみましたが、パス付にはなりませんでした。

html

1<html> 2<body> 3<form enctype="multipart/form-data" method="post"> 4<input type="file" name="userfile"> 5</form> 6</body> 7</html>

どうすればパス付でファイル名を取得できるのでしょうか。
よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/07/01 22:43

> パス付のファイル名を取得したいと思っています。 なぜパスの情報が必要なのでしょうか?
chintao1224

2021/07/02 04:44

htmlからパス付のファイル名が送信できれば、受け取るphp側でimportが出来ると思ってました。どのためパス付のファイル名がほしかったです。
m.ts10806

2021/07/02 05:02

PHP使うなら話は別 質問本文に書かれてないことは誰もわからないので追記を。 書いてあったら「できない」という回答にはなってないです
guest

回答3

0

ベストアンサー

enctype="multipart/form-data"を指定すればパス付になると思い

根拠不明ですが、これはあくまでリクエスト時にファイル送信をするためのものです。

<form>

multipart/form-data: type 属性で "file" を指定した <input> 要素のために使用する値です。

選択後にinput-fileに表示される内容はブラウザに依存します。
というか、そこに表示されたとしてほとんど意味がないです。
フォームSUBMITしてようやく選択したファイルがサーバーに送信されるわけですから

PHPらしいので

input-fileではサーバーに選択したファイルの実体をテンポラリファイルとして
送信するのでファイルパスは必要ないですし、ローカルのファイルはサーバーから参照できないのでなんの意味も持ちません(参照できたら悪さし放題)
サーバーに送信されたファイルを適切に処理してください。

投稿2021/07/01 22:54

編集2021/07/02 05:05
m.ts10806

総合スコア80861

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/07/02 02:47

この手の回答に理由書かない低評価は単なる迷惑行為です。 運営から然るべき対応がなされることになります。
guest

0

無理だと思います。

疑わしいソフトウェアがユーザーのファイル構造を推測することを防止するため、文字列には C:\fakepath\ の接頭辞が付きます。

<input type="file"> - HTML: HyperText Markup Language | MDN

パスを知りたい目的は何ですか?

投稿2021/07/01 18:22

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

htmlからパス付のファイル名が送信できれば、受け取るphp側でimportが出来ると思ってました

できません。

投稿2021/07/02 04:47

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/07/02 04:48

仮にできたところで、「Webから送られてくるコードを実行するプログラム」なんてものは、セキュリティを考慮すれば基本的に書くべきものではありません。
chintao1224

2021/07/02 04:50

php側で絶対パスを取得することになるのでしょうか。
chintao1224

2021/07/02 04:52

webでインポートはしないというのになるのでしょうか。
maisumakun

2021/07/02 04:53

> webでインポートはしないというのになるのでしょうか。 そうですね…というより、何のためにそのような機能性を実装したいのでしょうか?
chintao1224

2021/07/02 04:58

インポートの対象は郵便番号データです。郵便番号データをCSVで取得して、インポートしようと考えていました。すべてwebでできれば便利かなと考えました。
maisumakun

2021/07/02 04:59

> インポートの対象は郵便番号データです。郵便番号データをCSVで取得して、インポートしようと考えていました。 でしたら、サーバに来たデータを処理すればいいだけの話で、ファイルパスは何も関係しません。
chintao1224

2021/07/02 05:05

すみません、僕の話し方が良くなかったです。郵便番号データはCSVファイルで提供されているので、CSVファイルを読み取りテーブルにinsertしたかったです。
maisumakun

2021/07/02 05:08 編集

普通に<input type="file">でCSVファイルを選択した後にフォームを送信すれば、「ファイルの中身」がPHPサーバ側に送られます。それを処理すればいいだけの話です。
chintao1224

2021/07/02 06:05

ありがとうございます。再度調べてやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問