- PR -

Access XPのファイルをHtmlInputFileタグでアップロード

1
投稿者投稿内容
ぷっぷー
会議室デビュー日: 2005/03/18
投稿数: 4
投稿日時: 2005-03-19 10:37
はじめまして。

いつもみなさんの書き込みを見せていただいて、参考にさせていただいております。ありがとうございます。
今回はいろいろ調べて見たのですが、どうしてもわからなかったので書き込ませいただきました。

まずやりたいことは件名のとおりAccessのXP(SP3)のファイルをサーバーにHtmlInputFileでアップロードすることです。

別スレッドで書き込みさせれていた下記のアドレスを参考に実際にASP.NET2003でプログラムを作成しました。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpgenref/html/cpconhtmlinputfilecontrol.asp

実際に実行してみると、テキストファイル、Excelファイル(XP、2003両方)やAccess2003等のアップロードは無事できるのですが、どうしてもAccessXPのファイルだけアップロードすることができません。

現在の作成状況は
@HtmlInputFileコントロールで、アップロードしたいファイルのパスを取得する
A用意しておいた読み込み用のボタンをクリックするとアップロードされる

という流れです。ところがAccessXPのファイルを選択し、読み込み用ボタンをクリックすると、クリック時イベントが発生せずいきなり「ページを表示できません。」というIEでサーバーが見つからない時に表示される画面が表示されます。

AccessXP側の何か問題かと思ってMicrosoftのページもいろいろ見てみたのですが、手がかりはなく、どうしたらいいものやら・・・

なにかご存知のことがあれば、ご意見お願いします。


きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-03-19 14:09
ぷっぷーさん、こんにちは。

Accessは2002(Xp)も2003も、2000も97も95も、拡張子は同じmdbですよね?
しかも、2003と2002は、内部的な形式も同じではなかったでしょうか。それともadpファイルですか?
いずれにしても、Accessのバージョンは関係ないような気がします。
それよりも、ファイルサイズを確認してみて下さい。デフォルトでは、ポストされるデータが4MBを超えるとアウトです。
アップロード可能なファイルサイズの指定については、ASP.NET 構成セクション スキーマ<httpRuntime> 要素の説明に記述があります。
ぷっぷー
会議室デビュー日: 2005/03/18
投稿数: 4
投稿日時: 2005-03-19 17:18
きくちゃんさん ご返信ありがとうございます。

Accessファイルは拡張子はたしかに同じmdbファイルです。adpファイルではありません。
ファイルサイズ確認しましたが、2MBちょっとでした。

教えていただいた<httpRuntime>要素の説明は見てみました。知らなかったので今後の参考になりました。ありがとうございました。

今回Accessのバージョンが問題かなーと思ったのは、下記のようなプログラムを作成したのですが、XPだとこのイベントが発生せず、他のファイルだと下記のイベントが発生し処理されたのでもしかしたら・・・と思ったのですが(^^ゞ

Private Sub btnUpload_ServerClick(省略) Handles btnUpload.ServerClick
strFileName = Path.GetFileName(ofile.PostedFile.FileName)
strFilePath = "c:\temp\" & strFileName
ofile.PostedFile.SaveAs(strFilePath)
end sub

きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-03-19 17:58
ぷっぷーさん、こんばんは。

引用:

ファイルサイズ確認しましたが、2MBちょっとでした。


では、関係なさそうですね。

引用:

Private Sub btnUpload_ServerClick(省略) Handles btnUpload.ServerClick


ServerClick イベント? ってことは、HtmlButton ?

試しに、HtmlInputFile と WebControls の方の Button だけを配置したテスト用のWebフォームで、Button.Click イベントハンドラが呼び出されるかどうかを確認してみては如何でしょうか?
ぷっぷー
会議室デビュー日: 2005/03/18
投稿数: 4
投稿日時: 2005-03-19 18:55
きくちゃんさん、早速のご返信ありがとうございます。

引用:
--------------------------------------------------------------------------------

Button.Click イベントハンドラが呼び出されるかどうかを確認してみては如何でしょうか?


--------------------------------------------------------------------------------

それも試しては見たのですが、やはりイベントが発生しませんでした。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-03-19 19:22
ぷっぷーさん、こんばんは。

引用:

それも試しては見たのですが、やはりイベントが発生しませんでした。


うーん、では念のために<httpRuntime>の maxRequestLength 属性を10MB位に設定して、確認してみてもらえます?
それでもダメなら、ちょっと判りませんねぇ。
あとは可能性として、ウィルス対策ソフトとかがブロックしているとか…。
ぷっぷー
会議室デビュー日: 2005/03/18
投稿数: 4
投稿日時: 2005-03-19 22:48
きくちゃんさん、ありがとうございます!!

maxRequestLength 属性を10MBにしてやってみたら、無事アップロードできるようになりました。

そしてすいません。httpRuntimeをはじめに教えていただいた時点では、アップロードしたいファイルサイズが既定の4MBよりだいぶ小さかったのでmaxRequestLength 属性の変更は実際には試していませんでした。
そのせいで余計にお手間を取らせることになってしまいました。申し訳ありませんでした。

それでは、ほんとうに助かりました!ありがとうざいました。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-03-19 22:59
ぷっぷーさん、こんばんは。

引用:

maxRequestLength 属性を10MBにしてやってみたら、無事アップロードできるようになりました。


やはりそうでしたか。
実運用で、ファイルサイズの制限をどうするかについては、十分に検討した上で決定して下さい。
1

スキルアップ/キャリアアップ(JOB@IT)