[ASP] Web Posting Acceptor for Windows を使用したアップロード

  ダウンロード & インストール



Posting Acceptor 1.01 は NT OptionPack の Site Server Express 2.0 に含まれます
( cpshost.dll を inetpub¥scripts ディレクトリにコピーするだけでも良い )

NT OptionPack が無い時は、下記の英語バージョンが使用できますが、日本語ファイルのアップロード
ができないようです。NT OptionPack のものでもアップロードはできるようですが、問題があります。
日本語をファイル名に使用したファイルはアップロードしないようにして下さい。

Version - 1.1
[Microsoft : http://www.microsoft.com/windows/software/webpost/post_accept.htm]



  IIS における権限設定

  
1) cpshost.dll が存在するディレクトリに、アプリケーションの設定として「実行」権限が必要
2) アップロードされるディレクトリに、「書き込み」権限が必要
  



  アップロードサンプルコード (ファイルフィールドが1つの場合)

paupl.asp
  
<HTML>
<BODY>
<% strSv = Request.ServerVariables("SERVER_NAME") %>
<FORM
 enctype=multipart/form-data        [---> 必ず必要]
 action=http://<%= strSv %>/scripts/cpshost.dll?PUBLISH?http://<%= strSv %>/lightbox/parepost.asp
 method=POST
>
<INPUT                         [---> ファイルフィールド]
 type=file 
 name=file                    [---> 名称固定] 
 size=20
><br>
<INPUT                         [---> アップロード先フィールド]
 type=text
 name=TargetURL         [---> 名称固定]
 value=/lightbox/upl/upload size=40
><br>
<INPUT type=submit value=アップロード><br>
</FORM>
</BODY>
</HTML>

  

parepost.asp
  
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=x-sjis">
</HEAD>
<BODY>
<TABLE  cellpadding=5>
	<TR><TD colspan=2 bgcolor=silver>フォーム変数</TD></TR>
<%
	if Request.Form.Count <> 0 then
		For Each x In Request.Form
			sColumn = Request.Form( x )
			if sColumn = "" then
				sColumn = "&nbsp;"
			end if
			%>
			<TR><TD><% = x %></TD>
			<TD>
			<%
				if Request.Form( x ).Count > 1 then
					Response.Write "<table >"
					For Each y In Request.Form( x )
						Response.Write "<tr><td>" & y & "</td></tr>"
					Next
					Response.Write "</table>"
				else
					Response.Write sColumn
				end if
			%>
			</TD></TR>
			<%
		Next
	else
		%><TR><TD>フォーム変数は存在しません</TD></TR><%
	end if
%>
</TABLE>
<SCRIPT FOR=window EVENT=onload language=JavaScript>
	alert( "paupl.aspへ戻ります" )
	location.replace( "/lightbox/paupl.asp" )   [---> /scripts がカレントなのでルートから記述]
</SCRIPT>
</BODY>
</HTML>

  

結果表示
フォーム変数
FileNameUPLOAD
FilePathD:\LIGHTBOX\upl\upload\
FileExtention.DAT
FileSize113572
targeturl/lightbox/upl/upload



  アップロードサンプルコード (ファイルフィールドが複数の場合)

paupl2.asp
  
<HTML>
<BODY>
<% strSv = Request.ServerVariables("SERVER_NAME") %>
<FORM
 enctype=multipart/form-data
 action=http://<%= strSv %>/scripts/cpshost.dll?PUBLISH?http://<%= strSv %>/lightbox/parepost.asp
 method=POST
>
<INPUT type=file name=file size=20><br>
<INPUT type=file name=file size=20><br>
<INPUT type=file name=file size=20><br>
<INPUT type=submit value=アップロード><br>
</FORM>
</BODY>
</HTML>

  

結果表示
フォーム変数
FileName
UPLOAD3
UPLOAD2
UPLOAD
FilePath
D:\LIGHTBOX\upl\upload\
D:\LIGHTBOX\upl\upload\
D:\LIGHTBOX\upl\upload\
FileExtention
.DAT
.DAT
.DAT
FileSize
110616
113445
113572
targeturl /lightbox/upl/upload



  アップロードフォーム作成時の注意

[アップロードに関係の無い入力項目と混在させない]

ファイルのアップロードは単独ページで行って下さい。
通常のASP の処理とは違って、cpshost.dll が間に入るために 少なくとも TEXTAREA を使用すると問題
が生じます。

[アップロード後のカレントは PUBLISH 先では無い]

cpshost.dll のある URL がカレントとなっています。URL を指定する場合は ルートから
指定して下さい。




  匿名アップロードの方法

インターネット環境で実際にアップロードを行うと、なにも設定しなければ認証ダイアログ
が表示されてしまいます。以下のリンクはそれを解消する方法です。

匿名アップロードの方法











  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ