1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Dropzone lädt doppelt hoch

Dieses Thema im Forum "PHP" wurde erstellt von Grunge, 20. Oktober 2016.

  1. Grunge

    Grunge Erfahrenes Mitglied

    Hey Leute,

    Via Dropzone Script lade ich Bilder hoch. Das funktioniert auch prinzipiell ganz gut, nur ist das Problem, dass er mir manche Bilder überspringt oder doppelt abspeichert. Das passiert aber völlig willkürlich, so dass ich nicht so recht weiß, warum und weshalb. Grobe Vermutung wäre, dass das Script "zu schnell" ist oder so.

    Zur Erläuterung:
    Wenn das Datei Feld NICHT leer ist wird ein Zufalls - Dateiname generiert.

    Danach wird das Thumbnail erstellt

    und letztendlich das ganze nochmal in die DB eingetragen.

    Wie gesagt funktioniert es einwandfrei, nur dass er manchmal doppelte Dateinamen vergibt, und dann logischerweise das Bild nicht hochläd, bzw diesen falschen doppelten Eintrag in die DB mit aufnimmt. Ich weiß aber patou nicht, woran das liegen könnte....

    Code (Text):
    1. <?php
    2.  
    3. include "includes/_db.php";
    4.  
    5. include "includes/_functions.php";
    6.  
    7. $ds          = DIRECTORY_SEPARATOR;  //1
    8.  
    9.  
    10.  
    11. $storeFolder = 'usr_timeline_img';   //2
    12.  
    13. $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    14.  
    15. if (!empty($_FILES)) {
    16.  
    17.         $charactersLength = strlen($characters);
    18.  
    19.     $randomString = '';
    20.  
    21.     for ($i = 0; $i < 128; $i++) {
    22.  
    23.         $randomString .= $characters[rand(0, $charactersLength - 1)];
    24.  
    25.     }
    26.  
    27.     $img = explode(".", $_FILES['file']['name']);
    28.  
    29.     $file = $img[1];
    30.  
    31.  
    32.  
    33.     $tempFile = $_FILES['file']['tmp_name'];          //3            
    34.  
    35.      
    36.  
    37.     $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;  //4
    38.  
    39.      
    40.  
    41.     $targetFile =  $targetPath. $randomString.".".$file;  //5
    42.  
    43.  
    44.  
    45.     move_uploaded_file($tempFile,$targetFile); //6
    46.  
    47.    
    48.  
    49.     //Thumbnail erstellen!
    50.  
    51. $imagefile = 'usr_timeline_img/'.$randomString.".".$file;
    52.  
    53. $imagesize = getimagesize($imagefile);
    54.  
    55. $imagewidth = $imagesize[0];
    56.  
    57. $imageheight = $imagesize[1];
    58.  
    59. $imagetype = $imagesize[2];
    60.  
    61.  
    62.  
    63.  
    64.  
    65. switch ($imagetype)
    66.  
    67. {
    68.  
    69.     // Bedeutung von $imagetype:
    70.  
    71.     // 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM
    72.  
    73.     case 1: // GIF
    74.  
    75.         $image = imagecreatefromgif($imagefile);
    76.  
    77.         break;
    78.  
    79.     case 2: // JPEG
    80.  
    81.         $image = imagecreatefromjpeg($imagefile);
    82.  
    83.         break;
    84.  
    85.     case 3: // PNG
    86.  
    87.         $image = imagecreatefrompng($imagefile);
    88.  
    89.         break;
    90.  
    91.     default:
    92.  
    93.         die('Unsupported imageformat');
    94.  
    95. }
    96.  
    97.  
    98.  
    99. // Maximalausmaße
    100.  
    101. $maxthumbwidth = 150;
    102.  
    103. $maxthumbheight = 100;
    104.  
    105. // Ausmaße kopieren, wir gehen zuerst davon aus, dass das Bild schon Thumbnailgröße hat
    106.  
    107. $thumbwidth = $imagewidth;
    108.  
    109. $thumbheight = $imageheight;
    110.  
    111. // Breite skalieren falls nötig
    112.  
    113. if ($thumbwidth > $maxthumbwidth)
    114.  
    115. {
    116.  
    117.     $factor = $maxthumbwidth / $thumbwidth;
    118.  
    119.     $thumbwidth *= $factor;
    120.  
    121.     $thumbheight *= $factor;
    122.  
    123. }
    124.  
    125. // Höhe skalieren, falls nötig
    126.  
    127. if ($thumbheight > $maxthumbheight)
    128.  
    129. {
    130.  
    131.     $factor = $maxthumbheight / $thumbheight;
    132.  
    133.     $thumbwidth *= $factor;
    134.  
    135.     $thumbheight *= $factor;
    136.  
    137. }
    138.  
    139. // Thumbnail erstellen
    140.  
    141. $thumb = imagecreatetruecolor($thumbwidth, $thumbheight);
    142.  
    143.  
    144.  
    145. imagecopyresampled($thumb,$image,0, 0, 0, 0, $thumbwidth, $thumbheight,$imagewidth, $imageheight);
    146.  
    147.  
    148.  
    149. //In Datei speichern
    150.  
    151. $imagefile = explode("/", $imagefile);
    152.  
    153.  $thumbfile = 'usr_timeline_img/thumbnails/' . $imagefile[1];
    154.  
    155.  imagepng($thumb, $thumbfile);
    156.  
    157.  
    158.  
    159.  //Bild in DB eintragen
    160.  
    161.  
    162.  
    163.  //$foto = gettimelinefoto($_COOKIE['ID']);
    164.  
    165.  $sql = "INSERT INTO social_timeline (timeline_uid, timeline_date, timeline_type, timeline_text, timeline_foto) VALUES ('".$_COOKIE['ID']."', NOW(), 'Foto', '".$randomString.".".$file."', '".$_GET['id']."')";
    166.  
    167.  $db->query($sql);
    168.  
    169.  //echo $randomString.".".$file;
    170.  
    171.  echo $sql;
    172.  
    173. }
    174.  
    175. ?>
     
Die Seite wird geladen...