принудительно загрузить zip-папку с помощью php?

#php

#php

Вопрос:

Я пытаюсь принудительно загрузить динамические файлы с помощью php.

однако загружаемые файлы пусты, и по какой-то причине они отображаются как 0 байт.

Я правильно получаю имя файлов и правильно загружаю принудительную загрузку, но когда я загружаю ZIP-папку, она пуста и отображается как 0 байт.

может кто-нибудь, пожалуйста, дайте мне знать, чего не хватает в моем коде?

вот мой код:

 if (isset($_POST['id'])) {
  //echo 'correct';

  $id = $_POST['id'];
  $file = $id.'_myfiles.zip';


  header("Content-disposition: attachment; filename=$file");
  header("Content-type: application/zip");
  readfile("../upload/$file.zip");
}
  

Заранее спасибо.

Комментарии:

1. $file.zip находится на вашем пути, и вы указываете _myfiles.zip раньше. Это приводит к _myfiles.zip.zip а это, вероятно, не то, чего вы хотели.

2. @SvenSchneider, вы имеете в виду имя папки? если это так, я правильно получаю имя папки. пример: 100_myfiles.zip . но он пуст. кстати, 100 представляет идентификатор $.

3. Я имел в виду то же самое, что и принятый ответ.

4. @SvenSchneider, молодец. извините, я был немного сбит с толку.

Ответ №1:

 $file = $id.'_myfiles.zip'; // == "104_myFiles.zip" for example.
  

Так что меняйте:

  readfile("../upload/$file.zip");
  

Для:

  readfile("../upload/$file");
  

Комментарии:

1. хороший. Я не могу поверить, что мне этого не хватало.