2017-07-22 1 views
0

enter image description hereHochladen zwei Bilder auf demselben Controller aber Bild Namen zweiter Datei nimmt ersten Dateinamen

enter image description here

Codeigniter Datei:

  if (!empty($_FILES['left_full_image']['name']))    
      { 

       $uploaded_file_name = $_FILES['left_full_image']['name'];     
       $extension = pathinfo($uploaded_file_name, PATHINFO_EXTENSION); 
       $uploaded_file_name_withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $uploaded_file_name); 
       $filename = time().$uploaded_file_name_withoutExt; 
       $this->load->library('common'); 

       $upload_sts = $this->common->global_file_upload($path, 'left_full_image', $filename); 

       if (isset($upload_sts['success']) && $upload_sts['success'] == 'y') { 
        if (isset($upload_sts['data']['full_path']) && file_exists($upload_sts['data']['full_path'])) { 
         $data['hd_left_full_image'] = $path.$filename.'.'.$extension; 
        } 
       } 
      } 

      if (!empty($_FILES['right_highlight_image']['name']))   
      { 

       $uploaded_file_name = $_FILES['right_highlight_image']['name']; 
       $extension = pathinfo($uploaded_file_name, PATHINFO_EXTENSION); 
       $uploaded_file_name_withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $uploaded_file_name); 
       $filename = time().$uploaded_file_name_withoutExt; 
       $this->load->library('common'); 
       $upload_sts = $this->common->global_file_upload($path,'right_highlight_image',$filename);     
       if (isset($upload_sts['success']) && $upload_sts['success'] == 'y') { 
        if (isset($upload_sts['data']['full_path']) && file_exists($upload_sts['data']['full_path'])) { 
         $data['hd_right_highlight_image'] = $path.$filename.'.'.$extension; 
        } 
       } 
      } 

Während ich versuche, diese sowohl die Datei in der Upload In der gleichen Form wurden beide Dateien hochgeladen, aber der Dateiname der ersten hochgeladenen Datei wird nicht gelöscht, während die zweite Datei hochgeladen wurde.

Die zweite Datei hat auch den gleichen Namen des Vornamens.

** Name der ersten Datei: ** 1500695786default_left ****

Array ([success] => y [data] => Array (**[file_name] => 1500695786default_left.jpg** [file_type] => image/jpeg [file_path] => /home/content/17/10326617/html/display/ci_ontime2/asset/upload/ [full_path] => /home/content/17/10326617/html/display/ci_ontime2/asset/upload/1500695786default_left.jpg [raw_name] => 1500695786default_left [orig_name] => 1500695786default_left.jpg [client_name] => default_left.jpg [file_ext] => .jpg [file_size] => 31.62 [is_image] => 1 [image_width] => 626 [image_height] => 626 [image_type] => jpeg [image_size_str] => width="626" height="626")) 

** Zweite Bildname: ** 1500695786comingsoon1 ****

Array ([success] => y [data] => Array (**[file_name] => 1500695786default_left.png** [file_type] => image/png [file_path] => /home/content/17/10326617/html/display/ci_ontime2/asset/upload/ [full_path] => /home/content/17/10326617/html/display/ci_ontime2/asset/upload/1500695786default_left.png [raw_name] => 1500695786default_left [orig_name] => 1500695786default_left.png **[client_name] => comingsoon1.png** [file_ext] => .png [file_size] => 37.11 [is_image] => 1 [image_width] => 256 [image_height] => 256 [image_type] => png [image_size_str] => width="256" height="256")) 

Befor das Hochladen, während ich drucken Der Name des zweiten Bildes zeigt es als 1500695786comingsoon1 aber einmal nach dem Hochladen des Bildes, wenn ich das Ergebnis des hochgeladenen Status drucke es zeigt den Namen des ersten Bildes nur die Erweiterung wurde geändert, dass das zweite Bild hat. Aber im zweiten Bild Upload-Status kann ich den ursprünglichen Bildnamen in [client_name] => comessoon1.png aber nicht im Dateinamen erhalten.

Könnte mir jemand helfen, was hier eigentlich schief geht.

Antwort

0

Sie überschreiben Ihre Variablen aber darüber hinaus. Ich denke, Ihr HTML verwendet nur die gleichen Feldnamen. Ohne die Quelle rät es uns hier.

Außerdem wird Ihr $ uploaded_file_name_withoutExt nicht benötigt. Sie können einfach tun: Basisname ($ myfilename); http://php.net/manual/en/function.basename.php oder sogar die Methode pathinfo, die Sie bereits verwenden, kann diesen Dateinamen ohne Erweiterung zurückgeben. http://php.net/manual/en/function.pathinfo.php. Keine Notwendigkeit, hier zu regexieren.

0

Sie verwenden den gleichen Variablennamen $filename in beiden Bedingungen.

ersetzen
$filename = time().$uploaded_file_name_withoutExt; 

zu

$filename_firstImage = time().$uploaded_file_name_withoutExt; 

Verwenden Sie unterschiedliche Variablennamen

Verwandte Themen