Frage von NeueFrage2, 26

PHP .png Endung an fertigen script?

Hey, ich habe einen fertigen Script für PHP, der auch normal funktioniert, mir fehlt aber etwas, der Script sieht so aus:

<?php

$allowed = array('png', 'jpg', 'gif','zip');

if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0){

$extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);if(!in_array(strtolower($extension), $allowed)){ echo '{"status":"error"}'; exit;}$timestamp = time();

$datum = date("d.m.Y - H:i", $timestamp);

if(move_uploaded_file($_FILES['upl']['tmp_name'], 'upload/'.**$_FILES['upl']['name']= time()**)){ echo '{"status":"success"}'; exit;}

}

echo '{"status":"error"}'; exit; ?>

Das Problem liegt an der Fett markierten Stelle. die Datei wird wie folgt abgespeichert: https://gyazo.com/175b9ea27954fe7bec6fc04d94ffa8d2

Dort fehlt aber die Endung ".png", wie bekomme ich die dahin?

Mit + ".png" oder mit time().".png" funktioniert es nicht. Bitte dringend um hilfe! Im Internet finde ich nichts, bzw. funktioniert nichts, was ich ausprobiere...

Mit freundlichen Grüßen

NF2

Antwort
von maximilianus7, 10

der ausdruck für die zieldatei
'upload/'.$_FILES['upl']['name']= time()

macht so irgendwie kein sinn. du überschreibst den ausdruck 'upload/'.$_FILES['upl']['name']
mit
time()
- ich wusste garnicht, dass sowas geht. jedenfalls ist das ergebnis die in einen string gewandelte aktuelle server-uhrzeit - wie angezeigt. 

was willst du mit der uhrzeit erreichen?

die dateiendung ist wohl in $_FILES['upl']['name'] enthalten.


Antwort
von ITBloegg, 7

Du brauchst nicht die Variable zu verändern,  einfach gleich das Ziel angeben:

if(move_uploaded_file($_FILES['upl']['tmp_name'], 
'upload/'.time().'.png')){ echo
'{"status":"success"}'; exit;}
Antwort
von NeueFrage2, 13

Oh, die "Fett markierte Stelle" funktioniert wohl hier nicht. 
Ich meine die Zeile

if(move_uploaded_file($_FILES['upl']['tmp_name'], 'upload/'.$_FILES['upl']['name']= time())){

Keine passende Antwort gefunden?

Fragen Sie die Community