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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

4回答

11728閲覧

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

hamahama

総合スコア8

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/11/17 10:24

###前提・実現したいこと
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側でセキュリティを下げれば保存可能かもしれないですが、そういうわけにもいかず。

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

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

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

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

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

guest

回答4

0

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

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

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

投稿2016/11/17 10:40

maisumakun

総合スコア145184

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

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

hamahama

2016/11/17 10:54

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

0

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

投稿2016/11/17 10:39

yambejp

総合スコア114839

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

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

hamahama

2016/11/17 10:56

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

0

自己解決

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

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

投稿2016/11/21 07:40

編集2016/11/21 07:41
hamahama

総合スコア8

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

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

0

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

投稿2016/11/17 11:13

kei344

総合スコア69407

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

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

hamahama

2016/11/17 11:22

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問