2

Symfony 2 と Zip アーカイブに問題があります。zip を閉じると (zip > closed ())、ファイルが保存されません。symfony のファイルに書き込めないので問題が発生していると思います。

完全に機能するプロジェクトSymfonyを除いて、スクリプトを使用しようとしました。ZIP はディレクトリのルートに作成されます。

Windows を使用していることを明記します。PHP 5.3.13、Apache 2.2.22、および MySQL 5.5.25 で Wamp サーバーを使用しています。

これが私のスクリプトです:

<?php  
$host = 'localhost';

$user = 'root';

$bdd = 'symfony';

mysql_connect($host, $user) or die("erreur de connexion au serveur");

mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");

$query = "SELECT * FROM `symfony`.`testzip`";

$result = mysql_query($query);

while ($row = mysql_fetch_array($result)){
    $img = $row["question"];
}

$query = "SELECT * FROM `symfony`.`rallye`";

$result = mysql_query($query);

while($row = mysql_fetch_row($result)){
    $node = array();
    $node["id"] = $row[0];
    $node["name"] = $row[1];
    $node["code"] = $row[2];
    $node["urlarchive"] = $row[3];

    $json[] = $node;
}
mysql_close();

$json = array();
$nom_file = "rallye.json";

$f = fopen($nom_file, "w+");

fputs($f, json_encode($json));

fclose($f);

$zip = new ZipArchive(); 
$zipName = 'archive.zip';
if($zip->open($zipName, ZipArchive::CREATE) === true) {
    echo '&quot;Zip.zip&quot; ouvert<br/>';

    $zip->addFile('fichier.json');

    $zip->addFromString('img.jpeg', $img);

    $zip->close();
    echo 'Archive terminée<br/>';
} else {
    echo 'Impossible d&#039;ouvrir &quot;Zip.zip<br/>';
    echo 'retour au site';
}?>

目的は、テーブルに返されたブロブと別のテーブルから作成された json ファイルを含む zip を作成することです。

ご協力ありがとうございました

4

1 に答える 1

3

Stonyが言ったように、Symfony2とは何の関係もないようです...

ZipArchive::close問題を解決しようとしているphp.netページ(ユーザーのメモ)を確認してください:

http://www.php.net/manual/en/ziparchive.close.php

于 2013-02-20T10:41:02.703 に答える