ぴかちゅうと申します。

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

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:
  • 終了:2006/03/23 19:35:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:kuippa No.1

回答回数1030ベストアンサー獲得回数13

ポイント57pt

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

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

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

zipだから

application/x-zip-compressedかな。

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


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

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

id:pikacyuu

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

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

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

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

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

サーバーはWIN2003です。直接

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

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

2006/03/17 09:36:29
id:kibitaki No.2

回答回数53ベストアンサー獲得回数4

ポイント10pt

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

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

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

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

id:kuippa No.3

回答回数1030ベストアンサー獲得回数13

ポイント10pt

補足しますね。

ちなみに参考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

質問者が未読の回答一覧

現在未読の回答はありません

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません