2017-03-28 23 views
0

こんにちは皆さん、ありがとうございました。ここでこのコードでimgをフォームを使ってmysqlデータベースにアップロードします。これはデータベースです。ここでzipファイルで写真をダウンロード

データベース

CREATE TABLE `user_pic` (
    `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
    `img` LONGBLOB NOT NULL, 
    `img_name` VARCHAR(200) NOT NULL, 
    `upload_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `user_id` INT(11) NULL DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) 
COLLATE='latin1_swedish_ci' 
ENGINE=InnoDB 

私はここで私のループすべての画像や映像を表示する変数

load_img.php

$couple_login_id = $_SESSION['users']['id']; 
$statement = $conexion->prepare("SELECT * FROM user_pic WHERE user_id = $couple_login_id"); 
$statement->execute(); 
$fotos = $statement->fetchAll(); 

アン内のすべての写真を読み込みますhtmlの

gallery.php

<?php foreach($fotos as $foto):?> 
     <div class="col-xs-12 col-sm-4 col-md-3 item-photo"> 
     <div class="photo"> 
      <?php echo '<img class="img-responsive" src="data:image/jpeg;base64,'.base64_encode($foto['img']).'"/>';?> 
      <?php echo '<a class="search zoom fancybox" href="data:image/jpeg;base64,'.base64_encode($foto['img']).'"><span class="icon-search"></span></a>';?> 
      <?php if($_SESSION['users']["user_rol"] == 1):?> 
      <a class="star" href="#"><span class="icon-star"></span></a> 
      <?php endif;?> 
      <a class="download" href="#"><span class="icon-download"></span></a> 
     </div> 
     </div> 
    <?php endforeach;?> 

このzipファイル上のすべての写真をダウンロードするためのコード。 私はzipファイルを作成し、それをダウンロードする場合、ファイルがunknow形式を持っているか、破損していることをsedのため、私はそれを開くことができ

​​

problemisを download_zip.php。コードに何か問題がある場合や、写真がデータベースに保存されているためです。あなたが私に与えることができるおかげで、ありがとう。 :D

+0

まず、配列上でbasename($ path)を呼び出しているようです。あなたは$ path {string} – Andreas

+0

が必要ですか? –

+0

私は間違ったパラメータでaddFileを使用していると思います。パスごとにファイルを追加する必要があります。 docs:http://php.net/manual/en/ziparchive.addfile.phpを参照してください –

答えて

0

ファイルの代わりにバイナリデータを使用する場合は、addFromStringメソッドを使用する必要があります。したがって、コードをこれに変更することができます:

$zip = new ZipArchive(); 

// create a temp file & open it 
$tmp_file = tempnam('.', ''); 
$zip->open($tmp_file, ZipArchive::CREATE); 

// loop through each file 
foreach ($fotos as $file) { 
    //add it to the zip 
    $zip->addFromString($file['img_name'], $file['img']); 
} 

// close zip 
$zip->close(); 
+1

OMGが追加されました。:D –

+0

アレックス今問題は、ファイルが破損しているために写真を抽出できるということです。XD –

+0

[$ file ['img'] **を出力してみてください。多分それは壊れた –

0

あなたのパスを設定し

$ zip-> ADDFILE( "$のFILE_PATH"、$のDOWNLOAD_FILE)。

zipファイルのサイズを記述するContent-Lengthヘッダーをバイト単位で追加します。

header("Content-type: application/zip"); 
header("Content-Disposition: attachment; filename=wedding_photos.zip"); 
header("Content-length: " . filesize('wedding_photos.zip')); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
readfile('wedding_photos.zip'); 
+0

私に同じ結果を与えてください。 –

+0

あなたのfile_pathは正しいですか? –

+0

OK、すでに変更を加えましたが、同じメッセージを送信しようとしました。 –

関連する問題