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

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

新規登録して質問してみよう
ただいま回答率
85.44%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

13258閲覧

ファイルアップロード機能について

DAIKI-

総合スコア11

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/07/04 06:44

編集2018/07/04 08:49

HTMLでホームページを作る場合
<input type="file" name="input_file0" >のようにプログラムをうちファイルを選択するとこまでは実装できました。
やりたいことの流れ
選択したファイルをサーバーに送信
サーバーに送信したファイルをダウンロードしたい
ダウンロードしたファイルを任意で作ったフォルダにいれたい

自分で作成したHTML

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>tesuto(仮)</title> </head> <body>    <form> <input type="file" name="input_file0" ><br>    </form>   </body> </html>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/07/04 06:57 編集

「ファイルの中にアップロード」→「フォルダの中に」の間違い? WEBページはどこにあるの?
m.ts10806

2018/07/04 06:57

ちょっと状況がおかしいですね。ホームページということはWebサーバー上で動作しているはずです。ファイル選択は自身のパソコン上から選択するはずです。アップロードはそのWebサーバーに対して行うものです。 >選択したファイルを自分のパソコン上のファイルの中にアップロードしたいのですが
DAIKI-

2018/07/04 07:02

すいません。自分が作成したHTML上でファイルを選択してアップロードしたファイルを自分が選択したフォルダにダウンロードできるようにしたいです。に
DAIKI-

2018/07/04 07:03

流れ。1ホームページでファイルを選択しアップロードする。
DAIKI-

2018/07/04 07:04

2.アップロードしたファイルを自分のローカル内のフォルダに追加していきたい
m.ts10806

2018/07/04 07:08

アップロードするファイルは自分のローカル内から選択するので、自分で動かせばいいような・・?なぜ、どのような背景で今回のような要件が発生したのでしょうか?
DAIKI-

2018/07/04 07:12

webでファイル提出BOXを作りたいので、提出されたファイルを同じフォルダに保存したいので、今回は簡易版を作ろうかと思い行なっております。
m.ts10806

2018/07/04 07:16

質問を編集して要件をきちんとかためてください。丸投げな上に場合によりプログラミングに関係ありません。同じLAN環境であれば共有フォルダ作ってそこに提出してもらえればいい話ですし、かけようと思えば個別にロックかけられますし。
DAIKI-

2018/07/04 07:19

それも考えたのですが、最終的には任意の時間でWI-fiに接続されていている機器だけが提出できるようにしたいです
m.ts10806

2018/07/04 07:22

(2回目)質問を編集して要件をきちんとかためてください。丸投げな上に場合によりプログラミングに関係ありません。
x_x

2018/07/04 07:47

どこまでできているのでしょうか? サーバーは用意されていますか?
DAIKI-

2018/07/04 08:17

簡易サーバーはできております、ファイルを参照するところまでです
m.ts10806

2018/07/04 08:18

(3回目)質問を編集して要件をきちんとかためてください。 「簡易サーバー」と書いても誰にも分かりませんよ。具体名・バージョンなどなど環境情報を追記する必要があります。
x_x

2018/07/04 08:21

アップロード機能を実現するにはサーバー側のプログラム(HTMLではなく)が動く必要があります。その設定はできているのでしょうか?
DAIKI-

2018/07/04 08:23

難しいんですね。アップロードしたファイルをダウンロードしたいだけなのですが。。l
DAIKI-

2018/07/04 08:24

# CGI モジュールを読み込む require "cgi" #// ----------------------------------------------------- #// 拡張子からアップロードを許すか調べる #// ----------------------------------------------------- def FileExtensionGetAllowUpload(ext) # アップロードを許可したい拡張子があればここに追加 allow_ext = ["bmp","gif","jpg","jpeg","png","zip"] allow_ext.each { |v| if (v == ext) then return true end } return false end #// ----------------------------------------------------- #// 文字列から拡張子を取得する(なければ nil) #// ----------------------------------------------------- def StringGetFileExtension(string) string = string.split(/(\\|\/)/)[-1] a = string.split(/(\.)/) if a.length > 1 then return a[-1] end return nil end # CGI オブジェクトを作成する query = CGI.new # 名前をキーにして Tempfile オブジェクトを取得する input_file = query["input_file"] # 拡張子を取得する file_ext = StringGetFileExtension(input_file.original_filename) # アップロード可能な拡張子であるか調べる if (FileExtensionGetAllowUpload(file_ext)) then # 現在の時間を取得する time_now = Time.now.tv_sec # 保存先のファイルパスを生成する(実戦運用する場合、排他処理を考慮して保存先のファイル名を生成する必要があります) $file_name_new = "./" + time_now.to_s + "." + file_ext # File オブジェクトを取得する open($file_name_new, "w") {|fh| # バイナリモードを使用する fh.binmode # 一時的なファイルを書きだす fh.write(input_file.read) } end
DAIKI-

2018/07/04 08:25

間違えました
退会済みユーザー

退会済みユーザー

2018/07/04 08:56 編集

まず依頼されたことやろうよ。
m.ts10806

2018/07/04 08:27

厳しいこと言いますが、”””人の話を聞かない”””質問者さんには難しいですね。おそらく何を言っても理解しないので。
DAIKI-

2018/07/04 08:28

申し訳ございません。ずっと苦しんでいたので
DAIKI-

2018/07/04 08:29

formで参照したファイルをサーバーに送信して、送信したファイルをダウンロードしたいと思ったのですがこれは難しいのですか??
m.ts10806

2018/07/04 08:30

せめて指摘・依頼されたことには応えてください。じゃないと何もアドバイスできません。(私はもうこれ以上スルーされるようだったらここには関わりたくないとすら感じています)せめて他の人にはそのように思わせないように注意してくださいね。
DAIKI-

2018/07/04 08:31

はい。ご指摘ありがとうございます。
x_x

2018/07/04 08:31

アップロードしたファイルをダウンロードするなら、まずアップロードできるようにしなければなりません。HTMLの知識だけではできないので、サーバー側のプログラミング言語を覚えなくてはなりません。よくある機能なので入門書にはたいてい載っているかと思います……
DAIKI-

2018/07/04 08:33

そうなのですね、よくある機能なのでね、webで検索しても参照しか出でこないので調べ方が悪かったのですかね
guest

回答4

0

formで参照したファイルをサーバーに送信して、送信したファイルをダウンロードしたいと思ったのですがこれは難しいのですか??

難しいとかの前にさ、

  1. あなたの目の前にある「MacなりWindowsのPC」から「サーバーに送信」する
  2. 受信したサーバーは「クライアント=あなたの目の前のPC」に応答を返す

こういうことですよね?
もともとあったファイルを元に戻すだけの処理をして何が嬉しいの?

って話。回答者はまずここで、「何でそんなことしなきゃいけないの?」って疑問に思う。

「何がしたいの?」って回答者はあなたに聞く。

質問者「聞かれたことに答えてない」← 今ここ

ここから独り言

  1. 任意のフォルダを作成する
  2. そのフォルダのアイコンを右クリック
  3. ショートカットを作成
  4. 移動したいファイルをショートカットにドロップする

投稿2018/07/04 08:33

編集2018/07/04 08:51
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

まだ具体的な機能を作るには早いと思うので、入門書を用意しましょう。
サーバーが Windows なら、XAMPP をインストールして PHP を使うのが最も簡単ではないかと思います。

投稿2018/07/04 09:05

x_x

総合スコア13749

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

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

0

まずファイルアップロードはこう

HTML

1<form method="post" enctype="multipart/form-data"> 2<input type="file" name="hoge"> 3<input type="submit" value="go"> 4</form>

その上で、テンポラリにあがったデータを公開ディレクトリに
移動するプログラムをサーバーに書きます。
サーバー上のファイルをローカルに持ってくるのは、
なんらかのクローラーアプリをつかってください

投稿2018/07/04 07:29

yambejp

総合スコア115249

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

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

DAIKI-

2018/07/04 07:39

選択したファイルを保存して それを任意のファイルにダウンロードさせたい場合はどうすれば良いでしょうか?
yambejp

2018/07/04 07:56

> 選択したファイルを保存して ユーザーがするのはアップロードですよね? > 任意のファイルにダウンロードさせたい サーバ上のファイルをブラウザでアクセスしても 参照しかできないので、任意のフォルダにダウンロードしたいなら クローラー(ダウンローダ)でやる方法をおすすめします。 (ブラウザではできない)
DAIKI-

2018/07/04 08:21

ユーザー側と管理側を並行してやっております。すいません 参照したファイルは何もできないのですか??
guest

0

Webサーバー上にあるホームページ(個人的にはあまりこの呼び方は好きではありません。「Webサイト」ですね)にファイルをアップロードするにはWebサーバー上で動作する言語での実装が必要です。
HTMLからはファイルなど入力情報をそのサーバーに向かって送信することになります。

PHPなどWebサーバーで動作する言語で実装してください。
もちろん「アップロードしたファイルをダウンロード」もWebサーバ側の言語の役目です。

※ここではこの程度にとどめておきます。まずはどの言語を扱うか決めて、勉強してください

投稿2018/07/04 07:07

m.ts10806

総合スコア80871

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

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

DAIKI-

2018/07/04 07:10

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>tesuto(仮)</title> </head> <body> 課題提出用 ユーザー認証 <form> <input type="file" name="input_file0" ><br> </form> </body> </html> 現在このような感じです。
m.ts10806

2018/07/04 07:12

これだけで何を答えて欲しいのでしょうか。 回答はどこまで理解されました?
DAIKI-

2018/07/04 07:13

rubyかJavaScriptで行なっているのですがどちらもできません。
m.ts10806

2018/07/04 07:14 編集

行って「いる」んですよね? それで「どちらもできません」では意味が分かりません。 何をしようとして何が起きているのか全く伝わっていませんよ。 分かっている範囲分かっていない範囲を明確にしてください。 で、回答はどこまで理解されました?(2回目)
DAIKI-

2018/07/04 07:14

選択されたファイルをダウンロードしたいのですが
m.ts10806

2018/07/04 07:15

まずはアップロードしては?
DAIKI-

2018/07/04 07:17

サーバーにアップロードしてから そのアップロードされたファイルを自分が作成したファイルにいれていきたいです。
m.ts10806

2018/07/04 07:21

で、回答はどこまで理解されました?(3回目) ご自身だけが知っている情報が多すぎます。 質問本文を修正して誰が読んでも要件が伝わるように調整してください。
DAIKI-

2018/07/04 07:25

HTMLからはファイルなど入力情報をそのサーバーに向かって送信することになります。→ サーバーに向かって送信したファイルをどのように取得すれば良いのですか??
m.ts10806

2018/07/04 07:28

回答は3行しか読んでませんか?その3行にちゃんと書いてありますよ。 あと、人の話は最後までちゃんと聞いて(読んで)くださいね。 ご自身だけが知っている情報が多すぎます。 質問本文を修正して誰が読んでも要件が伝わるように調整してください。
DAIKI-

2018/07/04 07:35

回答を修正いたしました
m.ts10806

2018/07/04 07:38

回答の後半読んでくださいね。 念のためコメントで再掲しておきます。 ---------------------------------------------------------------- PHPなどWebサーバーで動作する言語で実装してください。 もちろん「アップロードしたファイルをダウンロード」もWebサーバ側の言語の役目です。 ※ここではこの程度にとどめておきます。まずはどの言語を扱うか決めて、勉強してください ---------------------------------------------------------------- なぜここでとどめたかというと 丸投げだからです。 全部書いたところでおそらく質問者さんは理解できません。 「rubyかJavaScriptで行なっている」と書いている割にはどちらもコードには現れてませんよ。 行って”いる”んですよね?じゃあその行って”いる”コードで頑張ってください。 私は「HTMLを提示してください」とは言っていません。 「質問本文を修正して誰が読んでも要件が伝わるように調整してください。」と言っています。 何も事情を知らない人に伝わる内容ではありません。
DAIKI-

2018/07/04 07:43

申し訳ありません。 また怒られるかもしれませんが 選択して選んだファイルをサーバーに送信して受け取れる内容が書いてある参考サイトを貼ってくれるとありがたいです。
m.ts10806

2018/07/04 07:48

> まずはどの言語を扱うか決めて、勉強してください
m.ts10806

2018/07/04 07:49

というかいっそのことDropBoxでもなんでも使えばいいと思います。 ファイル共有サービスは幾らでもあるので、今の質問者さんのような状態であればわざわざ自力で作る必要ありません。
DAIKI-

2018/07/04 08:40

function file_upload() { // フォームデータを取得 var formdata = new FormData($('#my_form').get(0)); // POSTでアップロード $.ajax({ url : "http://localhost:8080/upload.html", type : "POST", data : formdata, cache : false, contentType : false, processData : false, dataType : "html" }) .done(function(data, textStatus, jqXHR){ alert(data); }) .fail(function(jqXHR, textStatus, errorThrown){ alert("fail"); }); }
DAIKI-

2018/07/04 08:40

簡易サーバーはlocalhostでやっております
DAIKI-

2018/07/04 08:41

JavaScriptで行なっております
m.ts10806

2018/07/04 08:41

何回目かな。 ****質問本文を修正して誰が読んでも要件が伝わるように調整してください。**** もう「要件」というのを辞書で引くところからやってください。
DAIKI-

2018/07/04 08:42

了解です
m.ts10806

2018/07/04 08:43

というかね。 「追記修正依頼」で「ここには関わりたくないとすら感じています」と書いたにも関わらず 人の話を無視した行為を繰り返してるということに気づかない? 嫌がらせにしかなっていません。空気読もう。私はもう知らない。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.44%

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

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

質問する

関連した質問