
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AjaxでDBと連携した動的リスト...
-
ajaxでhtmlを返して画面に描画…...
-
googleマップにajax
-
FFFTPでデータの更新ができません
-
データ受け渡しについて
-
【Ajax】改行を含めたデータを...
-
subversionでコミットしたらftp...
-
【JavaScript】confirmのボタン...
-
jsonテキストデータの並び替え...
-
saved from url=(0013)abou
-
8ビットダウンカウンタをVerilo...
-
DelphiでSelectDirectoryを..
-
HTMLでDBからデータを表形式で...
-
OVERLAPPED構造体が分かりませ...
-
ASP.NET(VB)VBソースからJavas...
-
ASP.NET 動的に行を増やすTable
-
テキストファイルの内容を変数...
-
Ajax非同期通信の多重リクエス...
-
http://www.stickerlabo.com/ed...
-
include 再読み込み
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ajaxでhtmlを返して画面に描画…...
-
【Ajax】改行を含めたデータを...
-
ローカルネットワーク内での502...
-
innerHTMLで表示完了後に、Ajax...
-
jQueryの$.postの戻り値による...
-
データ受け渡しについて
-
Ajaxで最新の情報が取得できない
-
カーソルの動きに合わせてDBか...
-
HTMLでリアルタイムグラフを作...
-
ASP+IIS5.1+SQLServer
-
カウントダウンを表示
-
大量のデータを表として展開す...
-
JavaScript側でのXML作成の方法
-
Ajaxでpostした内容のresponse...
-
Response.Write(変数)
-
【JavaScript】confirmのボタン...
-
jsonテキストデータの並び替え...
-
ASP.NET(VB)VBソースからJavas...
-
HTMLでDBからデータを表形式で...
-
DirectXとOpenGLはどちらが動作...
おすすめ情報