Vom: 13.07.2018
Ein gängiger Weg den wir oft sehen um in Pimcore Assets anzulegen sieht folgendermaßen aus:
<?php $data = str_get_contents("/blah/fasel/file.png"); $asset = new Asset\Image(); $asset->setParentId($parent_id); $asset->setUserOwner(1); $asset->setUserModification(1); $asset->setFilename($asset_name); $asset->setData($data); $asset->save();
Dieser Weg funktioniert, wird aber bei sehr großen Dateien schnell unhandlich, langsam und hat das Potential, das Speicherlimit zu überschreiten.
Besser ist es hier, Streams zu benutzen:
<?php $stream = fopen($filename, "r+"); $asset = new Asset\Image(); $asset->setStream($stream); $asset->setParentId($parent_id); $asset->setUserOwner(1); $asset->setUserModification(1); $asset->setFilename($asset_name); $asset->save();
Auf diese Weise kümmert sich PHP um die häppchenweise Verarbeitung, was schneller abläuft und mit den gängigen Limits funktioniert.