mittels Link php ausführen

rernanded

Erfahrenes Mitglied
Hallo,
ich möchte per Download-Link gleichzeitig ein php ausführen welches ein .jpg aus einem Verzeichnis löscht.

Die Abfolge:
1. ich lade ein Bild per upload.php auf den Server hoch (in verz/), gebe ihm einen individuellen Namen (z.B.: wunschname1.jpg) und verkleinere es gleichzeitig

2. ich bearbeite dann das hochgeladene und verkleinerte Bild (=wunschname1.jpg) per edit.php

abschliessend biete ich auf edit.php den folgenden Download-Link:

<a href="#" download="newwunschname1">DOWNLOAD</a>

und möchte nun gleichzeitig den folgenden Code ausführen lassen um wunschname1.jpg in verz/ zu löschen.

PHP:
<?php
unlink('verz/wunschname1.jpg');
echo "It's deleted!";
?>



MONI

.
 
Wichtig ist nicht der Download sondern der Link als solcher, also der a tag.

Mit dem Klick auf den Link soll php ausgeführt werden.
Der Code soll nicht beim Laden der Seite ausgeführt werden, nur per Link-Klick. Und auch nicht auf einer anderen Seite.

MONI
 
Zuletzt bearbeitet:
Hallo Moni,
sieh dir mal diesen Code an, ob er dir weiter hilft:
Code:
<?php
// an dieser Stelle muss dir in einer Variablen das Bild
// zur Verfügung stehen
// in deinem früheren Thread sah das so aus:
// $combined->setImageFormat('png');
// $imgBuff = $combined->getimageblob();
// zum test lese ich eines mit file_get_contents:
$imgBuff = file_get_contents('images/busleft2.png');
// jetzt haben wir das Bild in der Variablen und können es löschen
unlink('images/busleft2.png');
// und jetzt geben wir das Bild aus
header('Content-Description: File Transfer');
header('Content-Type: image/png');
echo $imgBuff;
Dann kannst Du in deinem a-href-Tag dieses Skript angeben:
Code:
    <a href="get-image.php" download="das-bild.png">Downlaod It</a>
Wenn sich deine Frage auf deinen früheren Thread bezieht, kannst Du direkt in dem Skript, das das Bild erzeugt, dieses verwenden und brauchst nichts zu löschen.
 
Ich habe dich schon richtig verstanden, aber du mich anscheinend nicht und wenn ich raten soll, hast du dir die verlinkte Seite nicht richtig angesehen.
 
@Sempervivum
Allerdings sehe ich ein Problem, da das Bild definitiv erst mit dem finalen Download-Link gelöscht werden darf. Meine Frage bezieht sich nicht nur auf den besagten Thread.

Nur nochmals zur Verdeutlichung:

upload.php => ich lade ursprungsbild hoch => ordner/hochgeladenes-bild.jpg

edit.php => ich bearbeite hochgeladenes-bild.jpg sooft(Bearbeitungen lasse ich mir zwischenzeitlich anzeigen) bis ich es final downloaden will(weil fertig), solange muß das ursprungsbild im ordner/ vorhanden sein

der php-Code um den es geht muß in der edit.php plaziert sein, darf nicht beim Aufruf von edit.php ausgeführt werden, sondern nur beim Klick auf den Download-Link

Insofern glaube ich Deine Idee klappt nicht.

PHP:
?

<a href="?" download="editiertes-bild.jpg">Download</a>

Eine Idee?
PHP:
if ($_GET['func'] == 'yes') {
    unlink('ordner/hochgeladenes-bild.jpg');
} else {
    echo '<a href="edit.php?func=yes" download="editiertes-bild.jpg">Download</a>';
}



MONI
 
Zuletzt bearbeitet:
OK, was ich jetzt noch nicht verstehe: Du schreibst, dass Du dir die Bearbeitungen zwischenzeitlich immer anzeigen lässt. Das erfordert ja, dass das Bild mehrmals herunter geladen werden muss wenn die Bearbeitung auf dem Server statt findet?
 
Alles erfolgt online. Das Bild muß ich also quasi nicht herunterladen sondern lediglich in den Anwendungen auf edit.php nutzen.
Nur ein Beispiel (den Code dürftest Du kennen):
PHP:
$img1 = new Imagick(realpath('ordner/hochgeladenes-bild.jpg')); //
   $wimg1 = $img1->getImageWidth();
   $draw = new ImagickDraw();
   $textimg1 = $_POST[textimg1];
   $draw->setFillColor('white');
   $draw->setFont('ttfs/lato/Lato-Black.ttf');
   $draw->setFontSize(100);
   //$draw->setTextAlignment(Imagick::ALIGN_?); // ? = RIGHT = CENTER = LEFT

   /* Text-Platzierung im $img1 */
   $img1->annotateImage($draw, 30, 100, 0, $textimg1); // $draw, x-axis(von links), y-axis(von oben), angle, 'text'

usw.
Das speichere ich ab(kein Download) als editiertes-bild.jpg und guck es mir an ob es gut ist, der Text fehlerfrei usw., wenn nicht starte ich erneut, ändere den Text usw. ... speichere es wieder als editiertes-bild.jpg (überschreibe jeweils die Datei) usw. usf.

Dazu muß aber hochgeladenes-bild.jpg als Ausgangsmaterial sozusagen immer weiter erhalten bleiben. Erst wenn ich mein "Werk" downloade kann es gelöscht werden.

UND: Im nächsten Schritt lösche ich dann auch noch (nach dem Download) editiertes-bild.jpg. Aber eins nach dem anderen.

MONI
 
OK, aber:
guck es mir an ob es gut ist, der Text fehlerfrei usw.,
Wie machst Du das, ohne es herunter zu laden? Lässt Du es in einem img-Tag anzeigen? Und um den Text zu ändern musst Du ja die PHP-Datei lokal ändern und sie dann?
 

Neue Beiträge

Zurück