以下のコードを使用して、画像のアップロードを処理しています。すべてがうまくいっています。2 つの画像をアップロードするオプションを許可しました。1 つはロゴで、もう 1 つはスクリーンショットです。
アップロードを編集するオプションを提供しているときに、アップロードする新しいファイルを選択して古いファイルを置き換えるなど、この問題が発生しています。
私のimages[]
配列では、ループを使用して画像名を 1 つずつ取得します。ただし、ユーザーが 2 番目の画像 (スクリーンショット) を変更したい場合で、ロゴ フィールドで何も選択しない場合は、スクリーンショットのみを変更する必要があります。
ただし、images[]
配列では、最初の要素がアップロードの最初の要素になります。両方の画像を選択すると、logo.jpgimages[0]
と screenshot.jpg が表示されimages[1]
ます。しかし、2 番目の画像のみを選択すると、screenshot.jpg がimages[0]
. ただし、変更を有効にするには、配列の最初の要素を空白にし、配列の 2 番目の要素に 2 番目の画像アップロード オプションのデータを含める必要があります。どうすればそれを達成できますか?
$config['upload_path'] = '../uploads/';
$config['allowed_types'] = '*';
$config['max_size'] = '0';
$config['max_width'] = '0';
$config['max_height'] = '0';
$this->load->library('upload', $config);
$image = array();
foreach ($_FILES as $key => $value) {
if (!empty($value['tmp_name'])) {
if ( ! $this->upload->do_upload($key)) {
$error = array('error' => $this->upload->display_errors());
//failed display the errors
} else {
//success
$data = $this->upload->data();
$image[]= $data['file_name'];
}
}
}