FC2ブログ

ネオブ(neobu)

すごくどうでもいい日常を書き綴っています。他、マニアックなパソコン関係の知識や、ゲームの話等、neo(ネオ)が変なことを繰り広げます。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 |

ASPでファイルアップロード処理

下記のサイトのプログラムを単体で試し、問題なくファイルをアップロードできた。
https://sites.google.com/site/kikineria/scripting/fileupload-asp

ファイルをアップロードする場合、<form>を
<form enctype="multipart/form-data">にする必要がある。
ちなみにJavaScriptで指定可能。
document.[フォーム].encoding = "multipart/form-data";

上記と自作プログラムを組み合わせるとなぜかPOST値の値を取得できなかった。
Request.Form("****")

上記サンプルではPOST値を取得できないので断念。


そしてネットで調べる内に、「Basp21」に行き当たる。

おお、インストールをすると、使えるらしい。
なので早速インストールしてサンプルプログラム作成。

---------------------------------------
Dim Basp21,nRet,nLength,binary
Set Basp21 = Server.CreateObject("basp21")

nLength = Request.TotalBytes
binary = Request.BinaryRead(nLength)

If Request.TotalBytes Then
nRet = Basp21.FormSaveAs(binary,_
[input type="file"のname], [保存パス&保存名称])
End If
---------------------------------------

ファイルパスは以下のように私は作ってます。
FilePass = Server.MapPath("../pdf/" & FilePass)

nRetには、ファイル保存時の容量が入るみたいです。
あと、マイナスの値が入った場合はエラー。

で、問題のPOST値なんですが、以下で取得可能。
Basp21.Form(binary,"txt_filename")


が、何故か1024KBを超えるファイルだと、BinaryReadでエラーとなる。
[IIS]→[ASP]→[制限プロパティ]→[最大要求エンティティボディ制限]
上記の値をいじることによってこの問題は解決。

よし、プログラム出来たし、WindowsServer2008にうpするか。


が、Basp21は32bitでしか動かない!!
WindowsServer2008は64bitでした・・・
Server.CreateObject("basp21")でオブジェクトがみつからないって言われます。

だがしかし、IISのアプリケーションプールの設定にて、32bitで動くよう設定し、解決!

これで無事、ASPにてファイルのアップロードが出来たわけですな。

--------------------
ランキング参加してるので、クリックしてくれると嬉しいです^^
ブログランキング・にほんブログ村へ
にほんブログ村


テーマ:プログラミング - ジャンル:コンピュータ

PC関係 | コメント:0 | トラックバック:0 |
<<長野へ遊びに行ってきた 前編 | ホーム | 日本全国サーバ更新の旅 千葉編>>

コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。