mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
don't display binary data
This commit is contained in:
@@ -23,6 +23,9 @@ use Alchemy\Phrasea\Record\RecordWasRotated;
|
||||
use DataURI\Parser;
|
||||
use MediaAlchemyst\Alchemyst;
|
||||
use MediaVorus\MediaVorus;
|
||||
use PHPExiftool\Driver\Metadata\Metadata;
|
||||
use PHPExiftool\Driver\Metadata\MetadataBag;
|
||||
use PHPExiftool\Driver\TagFactory;
|
||||
use PHPExiftool\Exception\ExceptionInterface as PHPExiftoolException;
|
||||
use PHPExiftool\Reader;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
@@ -82,12 +85,12 @@ class ToolsController extends Controller
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (!$record->isStory()) {
|
||||
try {
|
||||
$metadata = $this->getExifToolReader()
|
||||
$metadatas = $this->getExifToolReader()
|
||||
->files($record->get_subdef('document')->getRealPath())
|
||||
->first()->getMetadatas();
|
||||
$metadatas = $this->getNoBinaryMetadataValue($metadatas, $record);
|
||||
} catch (PHPExiftoolException $e) {
|
||||
// ignore
|
||||
} catch (\Exception_Media_SubdefNotFound $e) {
|
||||
@@ -102,7 +105,7 @@ class ToolsController extends Controller
|
||||
'record' => $record,
|
||||
'videoEditorConfig' => $conf->get(['video-editor']),
|
||||
'recordSubdefs' => $recordAccessibleSubdefs,
|
||||
'metadatas' => $metadata,
|
||||
'metadatas' => $metadatas,
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -433,4 +436,28 @@ class ToolsController extends Controller
|
||||
unset($media);
|
||||
$this->getFilesystem()->remove($fileName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param MetadataBag $metadatas
|
||||
* @param $record
|
||||
* @return MetadataBag
|
||||
*/
|
||||
private function getNoBinaryMetadataValue(MetadataBag $metadatas, $record)
|
||||
{
|
||||
$metadataBag = new MetadataBag();
|
||||
$fileEntity = $this->getExifToolReader()
|
||||
->files($record->get_subdef('document')->getRealPath())
|
||||
->first();
|
||||
foreach($metadatas as $metadata){
|
||||
$valuedata = $fileEntity->executeQuery($metadata->getTag()->getTagname()."[not(@rdf:datatype = 'http://www.w3.org/2001/XMLSchema#base64Binary')]");
|
||||
|
||||
if(!empty($valuedata)){
|
||||
$tag = TagFactory::getFromRDFTagname($metadata->getTag()->getTagname());
|
||||
$metadataBagElement = new Metadata($tag, $valuedata);
|
||||
$metadataBag->set($metadata->getTag()->getTagname(), $metadataBagElement);
|
||||
}
|
||||
}
|
||||
|
||||
return $metadataBag;
|
||||
}
|
||||
}
|
||||
|
@@ -329,16 +329,29 @@
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for metadata in metadatas %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ metadata.getTag().getTagname() }}
|
||||
</td>
|
||||
<td>
|
||||
{{ metadata.getValue().asString() }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if app.getAclForUser(app.getAuthenticatedUser()).is_admin() %}
|
||||
{% for metadata in metadatas %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ metadata.getTag().getTagname() }}
|
||||
</td>
|
||||
<td>
|
||||
{{ metadata.getValue().asString() }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% for metadata in metadatas if 'System' not in metadata.getTag().getTagname() %}
|
||||
<tr>
|
||||
<td>
|
||||
{{ metadata.getTag().getTagname() }}
|
||||
</td>
|
||||
<td>
|
||||
{{ metadata.getValue().asString() }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user