dポイントプレゼントキャンペーン実施中!

アップロード機能を作る途中でアップロードするファイル(フォルダ)に対して新規tarファイルに変更し、
それをアップロードする方法をとることになりましたが
PHPは初心者のもので、サンプル見てアップロード機能は
なんとか作りましたが、アップロードするまえにtarファイルに変更することはどうしてもわからなくて
みなさんの貴重な知恵をおかりしたいと思っています。
よろしくお願いします。

A 回答 (3件)

#1>どの言語なら新たにソフト追加をせず、tarファイルを作成させてもらえるんですか?


言語の機能としてtarを作成するようなものは、ちょっと思い当たらないですね。

#1>VB言語でツール??を作成して…
実際に作ってみたことはないのですが、
tar32.dll というライブラリがあるので、これを利用して作成するツールを作ることはできると思います。
でも、結局こうしたプログラムをインストールすることになるなら、
+Lhaca のようなツールをインストールするのがいいかもしれません。

あと、クライアントがXPならZIPは、使えたと思うのでZIPを使うのがいいかもしれません。
http://www.vector.co.jp/soft/winnt/util/se355605 …
    • good
    • 0
この回答へのお礼

返事が遅くなりました。すみません!
よいアドバイスありがとうございます。
tar32.dllでなんとかやり遂げたいと思って
やってみたけどまだまだ知識が浅いせいで
結局できませんでした。もうちょっと粘って
見たかったが時間が許せなくて結局先輩にお世話に
なることになってしまいました。PHP勉強のせっかくのチャンスなのであとで自分でもうちょっと探ってみたいとおもいます。ありがとうございました。

お礼日時:2006/06/30 16:40

アップロードする前にtarに圧縮するというのは、ユーザ側でtar圧縮しないと無理ですよね?それと、ブラウザでフォルダをアップロードするというのは私の知る限りでは無理じゃないかと思います。



なので、アップロードする前にtar圧縮するのはクライアントサイドの話で、サーバ側のPHPでどうにかすることはできません。

よってアップロードするための専用のブラウザのようなものを作成するか、既存のブラウザのプラグインを作成するしかないのではないかと思います。

余談ですが、以下はアップロードしたファイルをサーバ側でtar圧縮する場合のメモですので、参考にしてください。
(質問をよく読まずに書いてしまい、でも消すのもあれなんで、一応載せておきます)

****************************************************

アップロードしたファイルをそのままtar圧縮する(そしてアップロードファイルは削除)というのであれば

1.ファイルをアップロード
2.アップロードしたファイルをtar圧縮
  (move_uploaded_file()をする前でも後でも構わないと思います)
3.アップロードファイルを削除

という流れになります。


UNIX環境であれば、tarコマンドを呼び出す方法が楽だとはおもいますが環境依存なので、別の方法としてPEARの Archive/Tarを使う方法があります。

Archive_Tarの使い方はこちらのサイトに詳しくのっています。

http://f3.aaa.livedoor.jp/~matukazu/pear/tar.php

しかしお使いのサーバがレンタルな場合で、PEAR Archive_Tarが導入されていなければ使うことが出来ません。
その場合は、「ローカルコピーのインストール」か「手動インストール」をする必要があります。
「ローカルコピーのインストール」については、サーバにシェルアクセスできる必要があります。
「手動インストール」については以下のサイトが参考になるでしょう。
(但し手動インストールは推奨されていません)

http://peardoc.xole.net/installation.manually.html

Archive_Tarのありかはこちらです。

http://pear.php.net/package/Archive_Tar/download
    • good
    • 0
この回答へのお礼

ありがとうございます。
こんなに詳しく説明してくれて
非常に助かります。勉強させていただきます。

お礼日時:2006/06/29 13:51

PHPのプログラムはサーバーにおいて動作し


アップロードするというアクションで起動するので
アップロードする前にサーバーのPHPプログラムで処理をするというのは、できないと思います。
クライアントのファイルやフォルダをtarファイルにしてアップするのであれば、クライアントのプログラムでtarファイルを作ってそのファイルをアップロード時に選ぶというような手順になるのではないかと思います。
見当違いなコメントだったらすみません

この回答への補足

ここでも会えるなんて、お久しぶりです。
WSHのときはいろいろと教えてもらって非常に
勉強になりました。そうです、結局クライアント側で
tarファイルにしてもらうことになりましたが、
どの言語なら新たにソフト追加をせず、tarファイルを
作成させてもらえるんですか?できればクライアント側に一番負担をかけない方法がしりたいです。「こうなった経由はアップロードしたファイルの最終変更日時が変わってしまうのでからです。」VB言語でツール??を作成してActiveXをつかってクライアントに配布して、tarファイルを作ってもらえると聞いたことがあるがVBはまったくさわったことがないんでどこかいいホームページでも知っているのであればご紹介してくれれば助かります。ほかにいいアドバイスとかあればよろしくおねがいします。

補足日時:2006/06/29 13:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!