![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
JavaScriptだけで画像アップロードし(実際に受け取り)、画面に表示させたいのですが、可能でしょうか?
※JavaScriptしか使えないレンタルサーバでの利用を想定しています
下記を試してみたのですが、うまくいきませんでした
▽【HTML5】File APIを使って、投稿された画像を即時表示する方法【小ネタ】 : アシアルブログ
http://blog.asial.co.jp/1079
※画像は表示されるのですが、画像ファイルはアップロードされていない(もしくは受け取ることが出来ない)
■質問1
・画像ファイルパスが、<img src="data:image/jpeg;base64,/9j/4AAQS になるのですが、これは、tmpみたいな場所にアップロードされている、ということなのでしょうか?(FTPで見ても、どこにアップロードされているか確認できませんでした)
■質問2
・アップロードされたファイルを受け取るための処理は、サーバサイドでしか出来ないということでしょうか? つまり、JavaScript単独だと、画像をアップロードできても、受け取ることが出来ないので、意味がない?
No.4ベストアンサー
- 回答日時:
# 当方への補足ではありませんが、勝手に回答しちゃいます。
なるほどなるほど。
どうやら、「アップロード」という言葉の意味について、
質問者さんと回答者側で認識が異なるようですね。
アップロードという言葉は、「ロード」とついているぐらいですし、
通常は送ったデータがサーバー上で(ファイルであるかはともかく)
リソースとして利用可能な状態まで行って成立するような呼び方ではないかと思います。
確かに、存在するサーバーに対してPOSTリクエストを送信すれば
ネットワーク上にはデータが流れていくと思いますが
それだけでアップロードとは通常は言わないと思います。
(送り先が受け取り可能なプログラムでなければ、読み出されないか、
途中でコネクションが切断されるかと思います。)
# ちなみにajaxで送信されるのは HTTP のリクエストです。
回答ありがとうございます。
>アップロードという言葉は … リソースとして利用可能な状態まで行って成立するような呼び方
勘違いしてました。サーバーへ対してデータを送信する行為のことを、受け取り可否に関わらず、アップロードと言うのだと思ってました
>サーバーに対してPOSTリクエストを送信すればネットワーク上にはデータが流れていくと思いますが それだけでアップロードとは通常は言わない
解説ありがとうございます。説明分かりやすかったです
># ちなみにajaxで送信されるのは HTTP のリクエストです
補足説明も参考になりましたー
No.5
- 回答日時:
> 受け取ることが出来ないのは分かるのですが、
> 「アップロード自体できない」のと「アップロードしたけど受け取れない」の違いがよく分かりません。
> もしくは、このサンプルでは、アップロードしようとしたけど出来ていないって、ことなのでしょうか?
画像ファイルをPOSTすれば確かに画像データはクライアントからサーバに向かって転送(アップロード)されます。
しかしサーバ側に送られてきたデータを処理するためのプログラムが動いていなければ
送られてきたデータは使われることなく捨てられます。
確かにアップロード自体はできていますが、そのデータを捨てるのが目的ではないでしょうから、
目的を達成できていない以上はこれをもって「できた」なんていう人はあんまりいないと思いますよ。
(それともデータが捨てられようがネット上をデータが流れさえすれば満足ですか?)
そして、これはAJAXを使っても使わなくても同じなので、AJAXは本質的に関係ありません。
(FormとSubmitボタンを使ってPOSTした場合でもサーバ側にプログラムがないとやっぱりデータは捨てられます。)
回答ありがとうございます。
>サーバ側に送られてきたデータを処理するためのプログラムが動いていなければ送られてきたデータは使われることなく捨てられます
>AJAXを使っても使わなくても同じ
>FormとSubmitボタンを使ってPOSTした場合でもサーバ側にプログラムがないとやっぱりデータは捨てられます
参考になりましたー
No.3
- 回答日時:
質問2の回答だけで良いでしょう。
あくまで画像の処理・保存・提供はサーバーサイドのプログラムでないとできません。
レンタルサーバーですから、最低限FTPプロトコルは利用できると思いますから、あなたのほうで、FTPクライアントを起動させるjavascriptを作成すれば
⇒ActiveX 経由で FTP する jQuery プラグイン を書いてみた - Cyokodog :: Diary( http://d.hatena.ne.jp/cyokodog/20100330/exactive … )
⇒javascriptでFTP - Google 検索( http://www.google.co.jp/#hl=ja&tbo=d&output=sear … )
不特定多数にアップロードさせるなら、サーバー側に、imageMagick/perlMagickなどを利用したCGIを置いて、サイズやフォーマット変換などが必要になるでしょう。
No.2
- 回答日時:
それはあくまでローカルの画像を表示するデモだから
アップロードはCGIを使わないと当然無理
WebアプリならFTPを使うとかでできないことはないけど
この回答への補足
回答ありがとうございます。
>アップロードはCGIを使わないと当然無理
$.ajaxで、サーバにデータを送信してると思うのですが、
「サーバにデータを送信」=「アップロード」ではないのでしょうか?
受け取ることが出来ないのは分かるのですが、
「アップロード自体できない」のと「アップロードしたけど受け取れない」の違いがよく分かりません。もしくは、このサンプルでは、アップロードしようとしたけど出来ていないって、ことなのでしょうか?
No.1
- 回答日時:
■質問1への回答
こちらはすみません、
HTML5 の File APIの仕様をちょっと見てみましたが
FileReaderの読み取ったデータを参照する際にどう扱われるかわかりませんでした。
ただ、JavaScriptはローカルマシン上で実行されるものですので、
ローカルマシン上の何処かであることは確かです。
(ブラウザによってオンメモリデータの参照であったり、テンポラリファイルであったりするかもしれません)
■質問2への回答
認識されている通りです。
サーバーにファイルを保存するためには、
サーバー上でデータを受け取り保存するためのCGIなどが必要になります。
少々誤解されていると思われますが、
File APIで読み出した画像(ファイル)は
そもそもアップロードはされていません。
ローカルマシンのブラウザー上に読み込まれているのみとなります。
質問文に記載されている参考サイトさんの、
2つめのサンプルに出てきている
「$.ajax」の部分が、サーバー側のプログラムへデータを受け渡す部分となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- X(旧Twitter) ツィッターの画像表示について 1 2023/08/17 09:28
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- Android(アンドロイド) Googleフォト 1 2022/03/25 07:38
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- Google Drive Googleドライブの警告メッセージを消す方法 4 2022/09/21 06:04
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
PDFを(htmlのように)無限に縦...
-
1枚の画像をクリックすると複数...
-
php コールバック関数
-
同一ページ移動時ハンバーガー...
-
二つのbxsliderをレスポンシブ...
-
自作の地図をグーグルマップの...
-
入力フォームの値をQRコードで...
-
webページの特定の部分だけ消し...
-
C言語のflagの使い方が分かりま...
-
http://ww12.ktai.pw/というサ...
-
正規表現で、特定の文字列を含...
-
データ受け渡しについて
-
ナイトボットのAliasについて
-
これってなんの電話かわかりま...
-
VBAでクイズゲームの作り方
-
以下のURL入れますか?皆さんは↓
-
画像のドットの部分が抜けてい...
-
Chinapost こよパズルどう動か...
-
非同期通信で掲示板を作る際の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ajaxでhtmlを返して画面に描画…...
-
データ受け渡しについて
-
【Ajax】改行を含めたデータを...
-
大量のデータを表として展開す...
-
HTMLでリアルタイムグラフを作...
-
JavaScript側でのXML作成の方法
-
Response.Write(変数)
-
Ajaxで最新の情報が取得できない
-
ローカルネットワーク内での502...
-
AjaxでDBと連携した動的リスト...
-
innerHTMLで表示完了後に、Ajax...
-
JavaScriptだけで画像アップロ...
-
Ajax.requestでphpファイルを習...
-
DirectXとOpenGLはどちらが動作...
-
非同期式3進カウンタ
-
【JavaScript】confirmのボタン...
-
saved from url=(0013)abou
-
HTMLでDBからデータを表形式で...
-
ASP.NET(VB)VBソースからJavas...
-
jsonテキストデータの並び替え...
おすすめ情報