powerpoint — PHP ziparchive не может открыть расширение PPSX (ошибка, код: 9)

Обработка текста из расширения PPTX работает отлично, но если PPSX находится на том же URL (тот же сервер & разрешения) код выдает код: 9 ошибка (ER_NOENT). Может ли кто-нибудь помочь определить, почему PPTX и PPSX обрабатываются по-разному, хотя они оба имеют одинаковый стандарт openXML? Как я могу извлечь текст из файла PPSX?

Для справки mime-тип: application / vnd.openxmlformats-officedocument.presentationml.slideshow

<?php

if(isset($_POST['processFile']) && isset($_FILES["file"]["tmp_name"]))
{
$fileText = ppsx_to_text($_FILES["file"]["tmp_name"]);
}

function ppsx_to_text( $path_to_file )
{
$zip_handle = new ZipArchive();
$response   = '';

if (true === $zip_handle->open($path_to_file)) // <-- fails to open / recognize PPSX as zip***
{
$slide_number = 1; //loop through slide files
$doc = new DOMDocument();

while (($xml_index = $zip_handle->locateName('ppt/slides/slide' . $slide_number . '.xml')) !== false)
{
$xml_data   = $zip_handle->getFromIndex($xml_index);

$doc->loadXML($xml_data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
$response  .= strip_tags($doc->saveXML());

$slide_number++;
}
$zip_handle->close();
}
return $response;
}

?>

<form id="content_form" class="the_form" action="" method="post" enctype="multipart/form-data">
<label for="file">Choose file to upload</label>
<input type="file" id="file" name="file">
<button type="submit" value="processFile" name="processFile">Process</button>
<div><?php echo $fileText;?></div>
</form>

-1

Решение

Если у вас есть доступ к серверу (при условии, что это окна), взгляните на эти настройки:

https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Configuring_server_MIME_types

Ваша проблема может быть в том, как типы mime настраиваются и обслуживаются по запросу. Если это Linux, посмотрите эти настройки для конкретной платформы. Если вы не можете управлять сервером, тогда ваш единственный вариант — получить доступ к локальной копии или копии памяти, как вы это сделали.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]