После успешного прочтения изображения файла MSWword я отобразил его.
Теперь я хочу скопировать эти изображения. Функция копирования изображения работает нормально, но изображение в искаженном формате
Код
$document = 'wordfile.docx';
readZippedImages($document);
function readZippedImages($filename) {
$zip = new ZipArchive;
if (true === $zip->open($filename)) {
for ($i=0; $i<$zip->numFiles;$i++) {
$zip_element = $zip->statIndex($i);
if(preg_match("([^\s]+(\.(?i)(jpg|jpeg|png|gif|bmp))$)",$zip_element['name'])) {
saveImage('http://localhost/readfileimage/display.php?filename=".$filename."&index=".$i."');
echo "<image src='display.php?filename=".$filename."&index=".$i."' /><hr />";
}
}
}
}
function saveImage($path)
{
copy($path, rand().'-flower.jpg');
}
Вот код файла display.php
/*Tell the browser that we want to display an image*/
header('Content-Type: image/jpeg');
/*Create a new ZIP archive object*/
$zip = new ZipArchive;
/*Open the received archive file*/
if (true === $zip->open($_GET['filename'])) {
//$zip->open($path, ZIPARCHIVE::CREATE);
/*Get the content of the specified index of ZIP archive*/
echo $zip->getFromIndex($_GET['index']);
}
$zip->close();
Пожалуйста, попробуйте это
function saveImage($path) {
$imageUrl = $path;
$contents = file_get_contents(trim($imageUrl));
if ($contents) {
file_put_contents('/path/to/save/flower.jpg', $contents);
}
}
Других решений пока нет …