人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ぴかちゅうと申します。
以下のやり方を実行するにはどうすればよいですか。
やりたいこと。
1.ASP(WEB .NETではない。)(WIN2003)
で画面表示したデーターをCSVに出力
2.出力したCSVファイルをZIPに圧縮
3.圧縮したファイルを自身のPCにダウンロード
で、出力したファイルをZIP形式にしたいのですが
どうすればよいでしょうか。
ASPは、直接DLLの呼び出しができないため、途方
にくれています。
よろしくお願いします。

●質問者: pikacyuu
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:.NET ASP CSV DLL pc
○ 状態 :終了
└ 回答数 : 1/3件

▽最新の回答へ

1 ● くいっぱ
●57ポイント

ASPでもOCXなりDLLは呼べますよ??

http://q.hatena.ne.jp/1095066281

ずいぶん昔に似たような質問があったのでその関連のリンクを張っておきますね。

zipだから

application/x-zip-compressedかな。

zip32.dllあたりをよんであげればできるかとおもいます。


dllの登録はコンポーネントマネージャー(?名称がちょっとうるおぼえ。)をつかうのがいいですよ。ちょっと調べたらregsvr32で登録とか書いているページが多かったので……。

DLL掴んだままにされるとregsvrじゃDLLの置き換えできないんで。

◎質問者からの返答

バッチファイルは、ZIP.EXEからZIP32.DLLに

渡して圧縮すればよいと思いますが、ASPから

ZIP32.DLLってURLを参照してもわからなかった

んですが、.netASPならDLLよべます

がASPからの呼び出しかたがわかりません。

サーバーはWIN2003です。直接

ZIP.EXEをよべません。(セキュリティでWEB

ユーザーにはCMD.EXEの実行権限がありません。)


2 ● kibitaki
●10ポイント

独自DLLを組むかBASP経由でコマンド飛ばすかで解決できませんか?

http://www.hi-ho.ne.jp/babaq/basp21.html#0029

権限問題は実装環境によって異なりますので完全に裏は取れませんが。

独自DLLもBASPもサーバー登録不可(なくらいセキュリティ他がうるさいサーバー)だと難しいですね。


3 ● くいっぱ
●10ポイント

補足しますね。

ちなみに参考URLの二番目の回答が昔のわたしの回答です。


DLLの参照のしかたは、

Server.CreateObjectを使用します。

 set cnn = Server.CreateObject("ADODB.CONNECTION")
 cnn.ConnectionString = sConnString
 cnn.Open

たとえばこんな感じに使用します。

http://thesource.ofallevil.com/japan/msdn/columns/server/ser...

MSDNあたりで、Server.CreateObjectを参考にされるとよいかもしれません。


このサンプルで言うところの"ADODB.CONNECTION"がZIP32のクラスパスになります。ちょっとZIP32のクラスパスをここに指定してやれば、サーバーサイドでクリエイトオブジェクト後、普通にDLLメソッドなどがよべるようになります。


もちろんZIP32.dllへのパスが通っていることが前提になりますので、コンポーネントマネージャーなどで、ZIP32.dllをiisから参照できるようにしてやる必要があります。


<% 
Set oZip = Server.CreateObject("zipit.utils") 
sTestfile = Array("c:\winzip.log", "c:\winnt\winnt.bmp") 
zip =oZip.doZip(sTestfile, "\myZipFile.zip") 'if you want to write this zip output here first, make sure you set write permssion for IUSR_ServerName account here 
Set oZip = nothing 
Response.Redirect("C:\myZipFile.zip") 'to download 
%> 

http://www.asptoday.com/ContentForums.aspx?Subject=0&Content...


とか

http://www.zbitinc.com/samples.asp


とかあたりを参考にされるといいかもしれません。ちょっとzip32の構成がわからないので、なんともいえませんが。



http://www.pcreview.co.uk/forums/thread-1469096.php

もしかしたら、既存のwscriptクラスのなかに、zipmakeあるかもしれませんね。

Function makeZip()
Dim WshShell
Set WshShell = CreateObject("wscript.shell")
WshShell.Run """c:\program files\winzip\wzzip.exe"" -
r -p -e0 -ybc c:\inetpub\wwwroot\temp\approvals\test.zip
c:\inetpub\wwwroot\temp\approvals\*.*"
Set wshShell=Nothing
End Function
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ