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

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

ただいまの
回答率

88.13%

Javascript】画像をローカルに保存する方法について

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 9,035

score 8

前提・実現したいこと

Javascriptで(MySQLに保存している)BlobデータをユーザーのPCの任意の場所に保存したい。
※ローカルネットワーク・WIN・IE限定です。

「ダウンロードしてから好きな場所に手動で置く」というのは、先方の都合でNG。

※(MySQLに保存している)Blobデータはajaxを使ってテキストデータで受け取る予定です。

試したこと

1.任意の場所にファイル保存(テキストファイル)
2.画像ファイルのダウンロード
3.PC上のファイルの複製
4.WEBから直接、PATH指定してダウンロード


1.任意の場所にファイル保存(テキストファイル)

「https://abicky.net/2011/07/19/071631/」だと
任意の場所に保存は出来ますがテキストファイルだけのような感じです。
※明確に「テキストファイルのみ作成」という記述を見つけたら諦めることも出来るのですが・・・。

var file = fso.OpenTextFile(○,○,○,○);
file.Write(保存する内容);

上記の
・どちらかの指定方法を修正すれば保存可能、
・別の関数等が存在するのでそれを使えば保存可能
等が分からずに行き詰っています。


2.画像ファイルのダウンロード、3.PC上のファイルの複製

ダウンロードしてから
「new ActiveXObject('Scripting.FileSystemObject')」の「CopyFile()」で
ファイルを複製しようとしたのですが、いくつか問題が。

・ダウンロード先を変更した場合
→ダウンロード先のPATHの取得方法を見つけることができない。

・ダウンロード完了のタイミング
→調べる限り面倒そうなので出来れば避けたい。


4.WEBから直接、PATH指定してダウンロード

「http://kujirahand.com/blog/index.php?JScript%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89」あたりを参考にしていたのですが、結局はセキュリティの都合で保存できず。
※IE側でセキュリティを下げれば保存可能かもしれないですが、そういうわけにもいかず。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+2

WEBサービスにアクセスしただけで相手のPCの任意の場所に
好きなようにファイルを送り込めるならウィルスやトロイの木馬だらけになりますね
セキュリティ的な制限があるのですからブラウザで処理するのは無理だと思いますよ。
IE限定であればVBSなどで実行するほうが現実的かもしれません

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/17 19:56

    VBSか・・・今から一から勉強するコトになるので出来れば避けたいですけど・・・代案の一つとして考えてみます。

    キャンセル

+2

そもそも、「リモートからファイルを作成できる」ということは、すでにあるファイルも上書きされうるということであり、ブラウザ標準でそのような機能を受け付けるにはあまりにリスクが高すぎるため、基本的には無効となっています。

IE11ではActiveXも無効となっているため、(現在はほぼIE11しかサポートされていないということを考えると)IEを介してできる手段、というのは「ブラウザにプラグインを追加する」ぐらいしかありません。

…というより、「ブラウザ経由で」特定の場所にファイルを作成しないといけない、その用事のほうが気になります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/17 19:54

    用事は・・・
    特殊なプリンタで画像を出力するにはPCに保存する必要があるそうです。
    ダウンロード後に手動で印刷して欲しいと思いつつも・・・ブラウザ経由が条件とのコトでした。

    キャンセル

check解決した方法

0

「4.WEBから直接、PATH指定してダウンロード」を実行するにあたり
IEの「互換表示設定」で「イントラネットを互換表示で表示する」にチェックを入れた。

内容は下記のような感じ。
4-1.「WEBから直接、PATH指定してダウンロード」をJscriptで作成。
4-2.HTMLからActiveXで「4-1」を実行。
※「4-1」を予め指定したPATHに置く必要がある・・・他の方法が分からないので妥協案。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

HTMLに画像を張り込んで、ブラウザで印刷、とかは不可能なのですか?
同様の方法ですが、サーバ側でPDF化してしまえばブラウザで開くことができ、印刷出来ます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/17 20:22

    出力機器が特殊らしく「PCに保存」ってのが絶対条件とのコトでした。

    キャンセル

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

  • ただいまの回答率 88.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る