• ベストアンサー

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

  • tar コマンドで

    tar コマンドの r オプションを使ってファイル名が同じものを一つのアーカイブに圧縮しました。 以下、t オプションで確認。 ---------------------------------------------- [root@localhost xxx]# tar tf tarFILE.tar file01 file01 ---------------------------------------------- この内、上の[file01]には"変更前"と記述されていて、 下の[file01]には"変更後"と記述されています。 x オプションでファイルを取り出すと、"変更後"と記述されている[file01]が 抽出できますが、"変更前"と記述された[file01]を取り出す場合にはどうすればよいでしょうか? RHEL 5.6です。 ご回答お願いします。

  • phpにてファイルをアップロード。

    皆様はじめまして。 phpでファイル[jpg画像]をアップロードできるようなブラウザーを作りたいのですが、検索でいろいろ探してはみたのですが、php初心者なのでいまいちよく分かっていません。 いくつかのページを参考にし、とりあえず参照→送信[アップ]できるようなブラウザーまではできたのですが、その先がうまくいきません。 サーバー上のにあるフォルダに画像をアップロードしたいのですが、上にも書いたようにphp初心者なので分からない部分が多くあります。 一連の流れが初心者でも分かるページなどありましたら教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • ファイルのダウンロード処理について

    ブラウザ上から画像ファイルをアップロードするシステムをPHPで作成しました。 このシステムにダウンロード機能を追加する事になり、現在、PHPでダウンロードするにはどのようにすればいいのかをネット等で調べています。 大きいファイルだとダウンロードできない等の障害発生するみたいな記事を目にしました。 サンプルコードも一緒に掲載されていましたが、統一されていない為、戸惑っています。 ※今回、数百MBのファイルがダウンロードできるような… そこで皆さんのお知恵をお借りできないかと思い、投稿させていただきました。 どうか、ご教授をお願いします。 些細な事でも構いませんで宜しくお願いします。

    • ベストアンサー
    • PHP
  • フォルダ内ファイルの参照とリスト作成

    以下のことをやりたいのですが、 教えてください。 在るフォルダ(例えば;abc)にファイルをアップロードします。 そのファイルをユーザーにダウンロードさせるのですが、 条件として、当該ファイルの名称を変更できません。 ファイル名を固定(アップロード時に変更)できれば、 どうにでもなりますが、それが出来ないために、 アップロードされたファイルを見に行って名称を把握、リストする、 ということがやりたいのです。 一言でいうと、 フォルダにあるファイルをリストする方法が知りたいのです。 ユーザーに提供するのは、「ダウンロード.html」という格好を考えています。 このhtmlを作るcgiを考えたいのです。 宜しくお願いします。

    • ベストアンサー
    • Perl
  • スクリプトから作成されるファイル所有者

    前回他の方で似た質問がありましたが、解決しませんでしたので、新たに質問させていただきますのでご了承ください。 【内容】 StepServerというレンタルサーバで実行しています。 セーフモードでPHPが利用可能です。 PHPスクリプトをFTPでアップロードした時の所有者が12345とします。 次に書き込みできるように12345の、あるフォルダに書込み許可します。 最後にスクリプトを実行して先ほどのフォルダ内に作成した、フォルダや、ファイルがすべて80と言うように別の所有者で作成されてしまいます(属性は777で作成できます)。 結果、さらにその所有者80の中にフォルダやファイルを作成しようとしても作成ができません(属性:777なのに・・・)。 同じ所有者で新規フォルダが作成できれば、解決できると思いますが、その方法がわかりません。 皆様のお知恵をお借りできればと思い書き込ませていただきました。 どうぞよろしくお願いいたします。 【参考】 1.他社レンタルサーバでは同じスクリプトで所有者が同じで作成できました。(StepServerでも動かしたいのでお願いします) 2.StepServerではMovableTypeの設置が可能で、MTの吐き出すファイルは全て12345の所有権で作成されているため、何らかの方法があると思われます。

    • 締切済み
    • PHP
  • お世話になっております。

    お世話になっております。 PHP、MySQLの初心者です。 PHPとMySQLでHPを作成しようと思いまして、本を一冊買い、その本のサンプルの内容を 変更してHPを作成したいと思っています。 1)MySQLデーターベースファイルをレンタルサーバへFTPで転送したい(アップロード)と思っていますが /home/ドメイン/www ←初期フォルダ (さくらレンタルサーバ) どこに転送すればよろしいでしょうか? 2)またPHPのアプリケーションファイルもどこにアップロードすればよろしいでしょうか? 是非よろしくお願いします。

    • ベストアンサー
    • MySQL
  • Perlで複数ファイルをアップロードする方法?

    Perlで複数ファイルをアップロードする方法? Perl勉強中の初心者です。 掲示板などで、フォルダ内にある複数ファイルを一度に ファイルアップロードする方法はどうやるのでしょうか? 一番は、サンプルプログラムがあれば、教えてほしいです。 また他の言語で可能なら、その方法論を知りたいです。 それを元にPerlで実現できないか検討したく。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • ファイルのアップロード先

    環境:PHP5&Apache2(&MySQL5)&XP ファイルをアップロードする場合、 http:///****/test/test01.php でtest01.phpがアップロードを行うファイルだった場合、 testフォルダに直接アップロードする方法はあるのでしょうか。 php.iniのupload_tmp_dirの記述で、アップロードフォルダを設定したあと、ファイルを移動するしかないのでしょうか。 アドバイスいただけると幸いです。

    • ベストアンサー
    • PHP
  • ubuntu10.04のtarのインストールの方法

    ubuntu10.04のtarのインストールの方法 こんばんわ、現在ubuntuの10.04を使用しているのですが、iTunes見たいなSongbirdというソフトを発見し、早速使ってみたいと思い、インストールを試みたのですが、端末で、↓ $ cd $ sudo tar zxvf Songbird_1.4.3-1438_linux_i686.tar.gz と入力すると、↓ tar: Songbird_1.4.3-1438_linux_i686.tar.gz: open 不能 No such file or directory tar: エラーを回復できません: 直ちに終了します tar: Child returned status 2 tar: 前のエラーにより失敗ステータスで終了します と出てしまうのですが、どうすればこのSongbirdなるものをインストールできるのでしょうか? 当方の手順としては、 1:Songbirdをサイトから「ダウンロード」のフォルダに保存 2:端末を起動し上記の文言を入力 3:エラー という順です。 このファイルを解凍して、「Songbird」フォルダの「Songbird」ファイルをクリックすると起動はするのですが、どうにかして「アプリケーション」→「サウンドとビデオ」→「Songbird」? と手順を踏んで起動したいのですが、どうすればよろしいでしょうか?  何かご存知でしたらよろしくお願いします。

  • tar(*.tgz)ファイルの解凍の際に「ディレクトリは状態を展開でき

    tar(*.tgz)ファイルの解凍の際に「ディレクトリは状態を展開できるようになる前に名前を変更されました」というエラーが出ます。 Linuxマシンでのバックアップをtarファイルにしました(20GB)。そして、そのtarファイルを、Win7マシンに接続しているUSBハードディスク(NTFS)にコピーして展開しました。ただし、展開の際には、win7上にVMwareをインストールして、仮想マシンとしてubuntsuを走らせ、ファイルの共有でUSBハードディスクを読み書きしています。その際、以下のようなエラーが出て終了しました。 ------------------------- tar: AAA/BBB/dir1/dir2: ディレクトリは状態を展開できるようになる前に名前を変更されました tar: AAA/BBB/dir1: ディレクトリは状態を展開できるようになる前に名前を変更されました tar: AAA/BBB/dir3: ディレクトリは状態を展開できるようになる前に名前を変更されました tar: AAA/BBB: ディレクトリは状態を展開できるようになる前に名前を変更されました tar: 前のエラーにより失敗ステータスで終了します -------------------------- 調べたところ、 AAA/BBB/dir1/dir2とAAA/BBB/dir3の中には、Linuxマシン上での他の場所に向けてシンボリックリンクファイルがあることがわかりました。 tarは、シンボリックリンクは無視すると思っていたのですが、このようなエラーがシンボリックリンクが原因で出ることがありえますか?それとも、他の原因でしょうか?