lakul: Bildupload Code; Datei nich umbenennen

Hallo!

Ich nutzte den folgenden Code um Bilddateien auf einen Server hochzulanden. Leider werden die Datei aber immer in eine Anhäufung von Zahlen also z.B. 12345678.jpg umbenannt. Leider finde ich die Stelle im Code nicht, an der das passiert, denn ich möchte gerne das der original Name bleibt.

Danke.

mfg

lakul

Der Code:

<?
//user defined variables
$abpath = "/home0/websites/ke/pds/images/userimages"; //Absolute path to where images are uploaded. No trailing slash
$sizelim = "no"; //Do you want size limit, yes or no
$size = "2500000"; //What do you want size limited to be if there is one

//all image types to upload
$cert1 = "image/pjpeg"; //Jpeg type 1
$cert2 = "image/jpeg"; //Jpeg type 2
$cert3 = "image/gif"; //Gif type
$cert4 = "image/bmp"; //Bmp type

$log = "";
$random1 = rand(1, 99999999);
//$random2 = rand(1, 99999999);
//$random3 = rand(1, 99999999);
//$random4 = rand(1, 99999999);
//$random5 = rand(1, 99999999);

//begin upload 1

//checks if file exists
if ($img1_name == "") {
$log .= "No file selected for upload 1<br>";
}
if ($img1_name != "") {
//checks if file exists
if (file_exists("$abpath/$img1_name")) {
$log .= "File 1 already existed<br>";
} else {

//checks if files to big
if ($sizelim == "yes") {
if ($img1_size > $size) {
$log .= "File 1 was too big<br>";
}
}

//Checks if file is an image
if (($img1_type == $cert1) or ($img1_type == $cert2) or ($img1_type == $cert3)) {
if (($img1_type == $cert1) or ($img1_type == $cert2)) {
$img1_name = $random1 . ".jpeg";
}
if ($img1_type == $cert3) {
$img1_name = $random1 . ".gif";
}
@copy($img1, "$abpath/$img1_name") or $log .= "Couldn't copy image 1 to server<br>";
if (file_exists("$abpath/$img1_name")) {
$log .= "File 1 was uploaded<br>";
}
} else {
$log .= "File 1 is not an image<br>";
}
}
}
//checks if file exists
if ($img2_name == "") {
$log .= "No file selected for upload 2<br>";
}
if ($img2_name != "") {
//checks if file exists
if (file_exists("$abpath/$img2_name")) {
$log .= "File 2 already existed<br>";
} else {

//checks if files to big
if ($sizelim == "yes") {
if ($img2_size > $size) {
$log .= "File 2 was too big]<br>";
}
}

//Checks if file is an image
if (($img2_type == $cert1) or ($img2_type == $cert2) or ($img2_type == $cert3)) {
if (($img2_type == $cert1) or ($img2_type == $cert2)) {
$img2_name = $random2 . ".jpeg";
}
if ($img2_type == $cert3) {
$img2_name = $random2 . ".gif";
}
@copy($img2, "$abpath/$img2_name") or $log .= "Couldn't copy image 2 to server<br>";
if (file_exists("$abpath/$img2_name")) {
$log .= "File 2 was uploaded<br>";
}
} else {
$log .= "File 2 is not an image<br>";
}
}
}
if ($img3_name == "") {
$log .= "No file selected for upload 3<br>";
}
if ($img3_name != "") {
//checks if file exists
if (file_exists("$abpath/$img3_name")) {
$log .= "File 3 already existed<br>";
} else {

//checks if files to big
if ($sizelim == "yes") {
if ($img3_size > $size) {
$log .= "File 3 was too big<br>";
}
}

//Checks if file is an image
if (($img3_type == $cert1) or ($img3_type == $cert2) or ($img3_type == $cert3)) {
if (($img3_type == $cert1) or ($img3_type == $cert2)) {
$img3_name = $random3 . ".jpeg";
}
if ($img3_type == $cert3) {
$img3_name = $random3 . ".gif";
}
@copy($img3, "$abpath/$img3_name") or $log .= "Couldn't copy image 3 to server<br>";
if (file_exists("$abpath/$img3_name")) {
$log .= "File 3 was uploaded<br>";
}
} else {
$log .= "File 3 is not an image<br>";
}
}
}
if ($img4_name == "") {
$log .= "No file selected for upload 4<br>";
}
if ($img4_name != "") {

//checks if file exists
if (file_exists("$abpath/$img4_name")) {
$log .= "File 4 already existed<br>";
} else {

//checks if files to big
if ($sizelim == "yes") {
if ($img4_size > $size) {
$log .= "File 4 was too big<br>";
}
}

//Checks if file is an image
if (($img4_type == $cert1) or ($img4_type == $cert2) or ($img4_type == $cert3)) {
if (($img4_type == $cert1) or ($img4_type == $cert2)) {
$img4_name = $random4 . ".jpeg";
}
if ($img4_type == $cert3) {
$img4_name = $random4 . ".gif";
}
@copy($img4, "$abpath/$img4_name") or $log .= "Couldn't copy image 4 to server<br>";
if (file_exists("$abpath/$img4_name")) {
$log .= "File 4 was uploaded<br>";
}
} else {
$log .= "File 4 is not an image<br>";
}
}
}

if ($img5_name == "") {
$log .= "No file selected for upload 5<br>";
}
if ($img5_name != "") {
//checks if file exists
if (file_exists("$abpath/$img5_name")) {
$log .= "File 5 already existed<br>";
} else {

//checks if files to big
if ($sizelim == "yes") {
if ($img5_size > $size) {
$log .= "File 5 was too big<br>";
}
}

//Checks if file is an image
if (($img5_type == $cert1) or ($img5_type == $cert2) or ($img5_type == $cert3)) {
if (($img5_type == $cert1) or ($img5_type == $cert2)) {
$img5_name = $random5 . ".jpeg";
}
if ($img1_type == $cert3) {
$img5_name = $random5 . ".gif";
}
@copy($img5, "$abpath/$img5_name") or $log .= "Couldn't copy image 5 to server<br>";
if (file_exists("$abpath/$img5_name")) {
$log .= "File 5 was uploaded<br>";
}

} else {
$log .= "File 5 is not an image<br>";
}
}
}

// PHP-Script (speichern.php):
$fhd = fopen("test.txt", "w"); // Dateiname, schreibbar oeffnen
fwrite($fhd, "$img1_name".$_POST["$img1_name"]);  // Variable die an dieses Script via .../schreiben.php?name=Variable

// gesendet wurde in die Datei schreiben
fclose($fhd);

// und wieder schliessen

?>

  1. echo $begrüßung;

    Ich nutzte den folgenden Code um Bilddateien auf einen Server hochzulanden. Leider werden die Datei aber immer in eine Anhäufung von Zahlen also z.B. 12345678.jpg umbenannt. Leider finde ich die Stelle im Code nicht, an der das passiert, denn ich möchte gerne das der original Name bleibt.

    Fehlern kommt man auf die Spur, indem man die Inhalte der Variablen und die Ergebnisse der Ausdrücke mit den vorgesehenen Werten vergleicht. Wenn man keinen Debugger zur Verfügung hat, kann man sich diese Werte im Script ausgeben lassen. Dazu eignen sich echo, print(), var_dump() und print_r().

    echo "$verabschiedung $name";

    1. Hi!

      Sorry, aber ich sehe nicht ganz, wie mir das weiter helfen kann, da ja im Code selber kein Fehler vorliegt, denn ich suche ja nur die Stelle um Code, wo der komische Dateiname erzeugt wird.

      Danke

      lakul

      1. echo $begrüßung;

        Sorry, aber ich sehe nicht ganz, wie mir das weiter helfen kann, da ja im Code selber kein Fehler vorliegt, denn ich suche ja nur die Stelle um Code, wo der komische Dateiname erzeugt wird.

        Wenn dein Code fehlerfrei wäre, hättest du ja kein Problem damit. An irgendeiner Stelle macht dein Code oder eine Funktion, auf die zu zugreifst, etwas anderes als du erwartet hast. Solche Probleme wirst du in deinem Programmiererleben noch oft vorfinden. Deswegen ist es wichtig zu lernen, wie man Fehler sucht. Beispielsweise durch die Analyse der Variableninhalte.

        echo "$verabschiedung $name";

  2. Hallo!

    Ich nutzte den folgenden Code um Bilddateien auf einen Server hochzulanden. Leider werden die Datei aber immer in eine Anhäufung von Zahlen also z.B. 12345678.jpg umbenannt. Leider finde ich die Stelle im Code nicht, an der das passiert, denn ich möchte gerne das der original Name bleibt.

    Hier:
    $log = "";
    $random1 = rand(1, 99999999);
    //$random2 = rand(1, 99999999);
    //$random3 = rand(1, 99999999);
    //$random4 = rand(1, 99999999);
    //$random5 = rand(1, 99999999);
    Da werden Zufallszahlen zwischen 1 und 99999999 erzeugt, die dann später als Dateinamen eingesetzt werden. In welchem Kontext auch immer das einen Sinn ergab.
    Wobei nur $random1 tatsächlich initialisiert und gefüllt wird, weil die anderen auskommentiert sind. Du hast bisher noch nicht mehr als eine Datei auf einmal hochgeladen, oder?

    Und dann beispielsweise hier die Zusammensetzung des Dateinamens:
    $img1_name = $random1 . ".jpeg";

    Woher sich allerdings einige der die Dateien betreffenden Variablen wie $img1_size oder $img1_type rektrutieren, kann ich aus dem Codestück nicht nachvollziehen.

    —Johannes