input type="file"の初期値設定

[戻る]
ちょこまん 2009/11/11(水) 21:24:00
はじめまして。質問させてください。

htmlで次のようなファイル指定のコントロールに初期値を設定すること
はできないのでしょうか。

<input type="file" value="" name="fileName">

IE6環境でかまいません。

ActiveXで、色々試してみましたが、エラーではじかれてしまいます。
ちなみに、<input type="text"・・・>ではもちろんできます。

MSHTML::IHTMLDocument3Ptr pDocument( pBrowser->Document );
MSHTML::IHTMLElementCollectionPtr pCollection;

// 検索文字列を設定
pCollection = pDocument->getElementsByName( _bstr_t( L"fileName" ) );
MSHTML::IHTMLInputTextElementPtr  pText( pCollection->item() );

@文字列を貼り付け
pText->value = _bstr_t( L"C:\\" );

Aコントロールの貼り付け
    
pText->select();
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event('V', 0, 0, 0);
keybd_event('V', 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);

アイデアでもいいですし、対応案ありましたら、
よろしくお願いします。

wclrp ( 'o') 2009/11/12(木) 07:45:21
JavaScriptでinput type="file"に値を設定することはセキュリティ問題で出来無いって
話は有名だね。安全のためユーザーにファイル名を入れさせる。
C言語などでMSHTMLからも出来ないっていう話は確認したことないけど。

キーイベント発生させてユーザーが入力したふりさせるとか。
それで出来てしまったら、それはそれで問題な気もするけど。

tetrapod 2009/11/12(木) 08:34:21
情報共有
http://ap.atmarkit.co.jp/bbs/core/fdotnet/17734

俺ならユーザーに ActiveX を入れさせてまでする必要があることとは思わない。
・単に技術的に可能不可能を論じるだけなら可能であること、と
・すべきこと、と
・セキュリティ的ユーザー教育的にしてはならないこと、と
その辺の意識解決あって後の話だな。
俺なら「仮に技術的には可能であっても、やらない」だろう。

ちょこまん 2009/11/12(木) 09:27:51
やはり技術的に無理なんですかね。。
セキュリティ的に問題があるのは重々承知です。

PATIO 2009/11/12(木) 11:38:42
逆に問題があるから出来ないようにブロックしていると言うことなのでは?
御自身でも言われている通り、簡単にできるようならセキュリティ的に問題が
あることは明白ですよね。

トリッキーな方法であれ、出来るのであればセキュティホールと言われそうな気がします。

subaru 2009/11/12(木) 16:31:42
ローカルのヘルプ見たら設定/取得可能でスクリプトからは不可のように
書かれてましたが、オンラインで確認すると・・・
http://msdn.microsoft.com/ja-jp/library/aa703798(en-us,VS.85).aspx

やっぱり読み取り専用でした。

ちなみにセキュリティの問題を承知の上でそんなことをしたい理由は何なんでしょう?
HTTPでのアップロードが目的なら
Msxml2.XMLHTTP について調べてみるといいかもしれません。

古いスレッドには追加発言できません。