Robert R.: Uploads in Sessions speichern, Dateigröße vorherbestimmen?

Beitrag lesen

Liebe Mitdenker,
liebe Wissende,
liebe Neugierige,

ja!

Nur mal für alle Interessierten mitgeteilt:

Das Speichern von Uploadfiles in der Session ist absolut unkritisch möglich. Die Umrechnung ins Stream-Format (also die Serialisierung) übernimmt PHP von ganz alleine.

Man kann also sinngemäß einfach

  
  
$_SESSION['files'][$userfilename][] = file_get_contents($_FILES[$userfilename]['tmp_name']);  
  

schreiben und das nachher, hier als Beispiel mit einem jpeg-Bild, mit

  
  
<?php   /* get_image.php */  
  
    session_start();  
  
    $userfilename = 'bilder';  
  
    if ( isset($_SESSION['files'][$userfilename])  
	 && isset($_GET['img'])  
	 && isset($_SESSION['files'][$userfilename][intval($_GET['img'])])  
       )  
    {  
	header('Content-Type: image/jpeg');  
	echo $_SESSION['files'][$userfilename][intval($_GET['img'])];  
    }  
  
?>  
  
## der Link dafür lautet dann z.B. <img src="get_image.php?img=7" alt="upload-Vorschau">  
  

wieder abfragen und ausgeben.

Ob man aber die maximale Größe für die Sessiondatei (begrenzt durch den für das Script verfügbaren Speicher) überschreiten wird, ist unklar. PHP scheint die Größe der Sessiondatei in Extents zu steuern und nicht direkt abhängig vom benötigten Speicherplatz zu machen. Die vorherige Abschätzung, um wieviel die Sessiondatei mit einem neuen Upload wachsen wird, ist also schwierig.

Da kann es dann wohl passieren, dass man Daten zwar noch wegschreiben, sie aber nicht wiederholen kann :-(

Spirituelle Grüße
Euer Robert

--
Möge der Forumsgeist wiederbelebt werden!