Guten Morgen,
ich schreibe erstmal, wie ich mir das (nach deinem ersten Plan) vorgestellt habe:
<?php
error_reporting(E_ALL);
session_start();
if (!isset($_SESSION['data']) && isset($_FILES['image'])) {
// das Formular wurde gerade abgeschickt
/**
* - deine ganzen Überprüfungen auf $_FILES['image']['tmp_name'] anwenden
* - Bilddaten mittels fread() aus $_FILES['image']['tmp_name'] auslesen und in $_SESSION['data'] speichern
* - Die Größe des Originals in den Session-Variablen 'oldWidth' und 'oldHeight' o.ä. speichern
* - die restlichen Formulardaten in den Session-Variablen 'newWidth', 'newHeight' und 'quali' o.ä. speichern
*/
}
/**
* hier stehen dir jetzt die Daten der Session zur Verfügung und
* ich hoffe, dass sie das auch dann noch tun, wenn das Formular nicht
* abgeschickt wurde, also nach dem Klick auf "Grafik speichern unter..."
*/
// Ressourcen erstellen
$quell_datei = imagecreatefromjpeg($_SESSION['data']);
$ziel_datei = imagecreate($_SESSION['newWidth'], $_SESSION['newHeight']);
// Größe ändern
imagecopyresized($ziel_datei, $quell_datei, 0, 0, 0, 0, $_SESSION['newWidth'], $_SESSION['newHeight'], $_SESSION['oldWidth'], $_SESSION['oldHeight']);
// und ausgeben...
header("Content-Type: image/jpeg");
imagejpeg($ziel_datei, "", $_SESSION['quali']);
?>
Ich bin mir nicht sicher, ob es so funktioniert und kann es hier leider nicht testen.
Jetzt noch zu deinem Script:
<?php
$action = $_GET['action'];if($action=="ausgabe")
{
session_start();
wie du oben siehst, reicht es aus, session_start() einmal an den Anfang der Datei zu schreiben. Die Session wird i.d.R. durch Cookies automatisch wieder aufgenommen.
$datei = $_SESSION['datei_inhalt'];
$bild_info = getimagesize($datei);
das wird nicht funktionieren, da getimagesize() einen Dateinamen erwartet. Daher habe ich oben diese Werte ebenfalls in Session-Variablen gespeichert - bei diesem Versuch kannst du die natürlich auch über GET weitergeben.
Der Rest sieht IMHO eigentlich ganz okay aus - ich denke, das könnte so funktionieren.
Gruß,
Andreas.