質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

5281閲覧

ziparchiveを使ってパス付きのファイルをアップロードし、中のtsvファイルの内容をDBに登録したい

samazama4623

総合スコア59

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/07/29 03:16

lang

1$zip = new ZipArchive(); 2 // 一時ファイルを作成 3 $filename = tempnam(sys_get_temp_dir(), 'example-prefix'); 4 $zip_status = $zip->open($filename, ZipArchive::CREATE); 5 6 $zip->setPassword('password');

と出来ましたが
このあとファイルのの内容を配列に入れて
dbにとうろくするにはどうしていけばよいですか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

まずご質問の意図を整理させてください。

1)PASS付きZIP(中にはtsvファイルがある)をWeb上からダウンロードできる場所にアップロード
2)1のファイルを別の場所でダウンロード
3)ダウンロードしたファイルをプログラムで解凍して中身を取り出し、DBに登録

…ということでしょうか。

あとsetPasswordはPHP5.6以降しか対応してないようですので、サーバ環境によっては使えませんのでご注意を…。


ご回答ありがとうございます。2015/07/29 13:09追記です。

PHP

1$zip = new ZipArchive(); 2 // 一時ファイルを作成 3 $filename = tempnam(sys_get_temp_dir(), 'example-prefix'); 4 $zip_status = $zip->open($filename, ZipArchive::CREATE); 5 6 $zip->addFile('/(path)/data.tsv', 'data.tsv'); 7 $zip->setPassword('password'); 8 $zip->close(); 9 10// ファイルをダウンロード可能な場所にアップロードする 11// 仮にZIPファイル名をtest.zipとします 12rename('/(現在保存されているパス)/test.zip', '/(アップロード先のパス)/test.zip');

これで1)については完了かと思います。
2)につきましては、ブラウザ上から手作業で落とせばよいのか、プログラム的にFTP接続なりで取りに行くのかで全く変わります。どちらになりますでしょうか。

投稿2015/07/29 03:56

編集2015/07/29 04:30
yu-ri

総合スコア634

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

samazama4623

2015/07/29 04:51

ご回答ありがとうございます。 1点間違えがありました。 アップロードしたzipファイルはDBに登録するために 一時的に保管するだけです。 なので 1)PASS付きZIP(中にはtsvファイルがある)をWeb上からダウンロードできる場所にアップロード はweb上からダウンロードしません、 申し訳ありませんが、よろしくお願いいたします。
samazama4623

2015/07/29 08:36

訂正です。。 ziparchiveを使ってzipファイルをアップロードし、中のtsvファイルの内容をDBに登録したい zipにはパスワードはつけません
yu-ri

2015/07/29 13:05

同一サーバ内の違うプログラムでDB登録するのであれば、アップロードディレクトリにZIPファイルを取りに行って、ZipArchiveで解凍して中身を取り出して、あとはfopenなりして内容を逐次保存していけばよいかと思います。 別サーバのプログラムとなるとFTP接続が必要です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問