• ベストアンサー

tarファイル作成について

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

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#1>どの言語なら新たにソフト追加をせず、tarファイルを作成させてもらえるんですか? 言語の機能としてtarを作成するようなものは、ちょっと思い当たらないですね。 #1>VB言語でツール??を作成して… 実際に作ってみたことはないのですが、 tar32.dll というライブラリがあるので、これを利用して作成するツールを作ることはできると思います。 でも、結局こうしたプログラムをインストールすることになるなら、 +Lhaca のようなツールをインストールするのがいいかもしれません。 あと、クライアントがXPならZIPは、使えたと思うのでZIPを使うのがいいかもしれません。 http://www.vector.co.jp/soft/winnt/util/se355605.html

roba1234
質問者

お礼

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

その他の回答 (2)

  • arcsin
  • ベストアンサー率70% (28/40)
回答No.2

アップロードする前に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

roba1234
質問者

お礼

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

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

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

roba1234
質問者

補足

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

関連するQ&A