PHP uploading files using <input> multiple Attribute -
i'm having several <input type="file"
fields uploading images. want convert input fields 1 single field using html multiple
attribute.
my working code multiple input fields:
<input type="file" name="popup_images_1"> <input type="file" name="popup_images_2"> <input type="file" name="popup_images_3">... ($i = 1; $i <= 3; $i++) { if (is_uploaded_file($_files['popup_images_' . $i]['tmp_name'])) { $products_image = new upload('popup_images_' . $i); $products_image->set_destination(dir_fs_catalog_images); if ($products_image->parse() && $products_image->save()) { $products_image_name = $products_image->filename; // database stuff } } }
my new code, not working, single input field:
<input type="file" name="popup_images[]" multiple="multiple"> $num_files = count($http_post_files['popup_images']['tmp_name']); ($i = 1; $i <= $num_files; $i++) { if (is_uploaded_file($http_post_files['popup_images']['tmp_name'][$i])) { $products_image = new upload('popup_images' . $i); $products_image->set_destination(dir_fs_catalog_images); if ($products_image->parse() && $products_image->save()) { $products_image_name = $products_image->filename; // database stuff } } }
things seems go wrong @ line new upload('popup_images' . $i)
set. ideas?
this upload
class:
class upload { var $file, $filename, $destination, $permissions, $extensions, $tmp_filename, $message_location; function upload($file = '', $destination = '', $permissions = '777', $extensions = '') { $this->set_file($file); $this->set_destination($destination); $this->set_permissions($permissions); $this->set_extensions($extensions); $this->set_output_messages('direct'); if (tep_not_null($this->file) && tep_not_null($this->destination)) { $this->set_output_messages('session'); if ( ($this->parse() == true) && ($this->save() == true) ) { return true; } else { return false; } } } function parse() { global $http_post_files, $messagestack; $file = array(); if (isset($_files[$this->file])) { $file = array('name' => $_files[$this->file]['name'], 'type' => $_files[$this->file]['type'], 'size' => $_files[$this->file]['size'], 'tmp_name' => $_files[$this->file]['tmp_name']); } elseif (isset($http_post_files[$this->file])) { $file = array('name' => $http_post_files[$this->file]['name'], 'type' => $http_post_files[$this->file]['type'], 'size' => $http_post_files[$this->file]['size'], 'tmp_name' => $http_post_files[$this->file]['tmp_name']); } if ( tep_not_null($file['tmp_name']) && ($file['tmp_name'] != 'none') && is_uploaded_file($file['tmp_name']) ) { if (sizeof($this->extensions) > 0) { if (!in_array(strtolower(substr($file['name'], strrpos($file['name'], '.')+1)), $this->extensions)) { if ($this->message_location == 'direct') { $messagestack->add(error_filetype_not_allowed, 'error'); } else { $messagestack->add_session(error_filetype_not_allowed, 'error'); } return false; } } $this->set_file($file); $this->set_filename($file['name']); $this->set_tmp_filename($file['tmp_name']); return $this->check_destination(); } else { if ($this->message_location == 'direct') { $messagestack->add(warning_no_file_uploaded, 'warning'); } else { $messagestack->add_session(warning_no_file_uploaded, 'warning'); } return false; } } function save() { global $messagestack; if (substr($this->destination, -1) != '/') $this->destination .= '/'; if (move_uploaded_file($this->file['tmp_name'], $this->destination . $this->filename)) { chmod($this->destination . $this->filename, $this->permissions); if ($this->message_location == 'direct') { $messagestack->add(success_file_saved_successfully, 'success'); } else { $messagestack->add_session(success_file_saved_successfully, 'success'); } return true; } else { if ($this->message_location == 'direct') { $messagestack->add(error_file_not_saved, 'error'); } else { $messagestack->add_session(error_file_not_saved, 'error'); } return false; } }
Comments
Post a Comment