iT邦幫忙

0

多圖上傳,如何抓到第一個、以及第二個之後的值?

  • 分享至 

  • xImage

我用了一個 ajax 的多圖上傳
已經可以多圖上傳了

$fileCount = count($_FILES['icon']['name']);

    for ($i = 0; $i < $fileCount; $i++) {

      $file = $_FILES['icon']['tmp_name'][$i];
      $dest = '../../images/admin/product/' . $_FILES['icon']['name'][$i];

      move_uploaded_file($file, $dest);
    }

只是我現在想要分開處理
第一張圖片
以及
第二張圖片以後的(不管幾張)

第一張圖我要 update 某一數據表
第二張圖以後的我要寫入數據表 (用foreach,有幾張就處理幾張)
只是我不知道這兩個我能怎麼抓?

不是已經寫出來了嗎?
柯柯 iT邦新手 2 級 ‧ 2018-07-03 19:27:38 檢舉
是 要 第一張圖處理一次 然後 第二張以後的(除第一張圖) 處理 這樣?
這樣 $i =0 的時候就是第一張了 不用用到foreach
火爆浪子 iT邦研究生 1 級 ‧ 2018-07-04 09:43:40 檢舉
TO 柯柯 那如何找到第二張之後的?然後除了第一張。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
最佳解答

就這樣…

function uploadFileByIndex($index, $name = ''){
	$name = empty($name) ? $_FILES['icon']['name'][$index] : $name;
    $file = $_FILES['icon']['tmp_name'][$index];
    $dest = '../../images/admin/product/' . $name;
    move_uploaded_file($file, $dest);
	return $name;
}

//第一張
$firstFileName = uploadFileByIndex(0);
//update 某一資料表
//$firstFileName 

//第二張以上
for ($i = 1; $i < $fileCount; $i++) {
    $otherFileName = uploadFileByIndex($i);  	
    //insert資料表
	//$otherFileName
}
看更多先前的回應...收起先前的回應...
火爆浪子 iT邦研究生 1 級 ‧ 2018-07-04 09:35:55 檢舉

原來可以這樣寫

火爆浪子 iT邦研究生 1 級 ‧ 2018-07-04 09:42:58 檢舉

但是我需要第一張的資訊和第二張以上的資訊怎麼辦?
「第一張的名字」以及「第二張之後的名字」
我要用這個名字更新和寫入資料庫

$_FILES['icon']['name'][0]
froce iT邦大師 1 級 ‧ 2018-07-04 11:34:08 檢舉

$_FILES["file"]["name"]:上傳檔案的原始名稱。
$_FILES["file"]["type"]:上傳的檔案類型。
$_FILES["file"]["size"]:上傳的檔案原始大小。
$_FILES["file"]["tmp_name"]:上傳檔案後的暫存資料夾位置。
$_FILES["file"]["error"]:如果檔案上傳有錯誤,可以顯示錯誤代碼。

請愛用google。

火爆浪子 iT邦研究生 1 級 ‧ 2018-07-04 12:40:15 檢舉

應該是說我不要該圖片的原始名字,我要另外定義 $_FILES['icon']['name'][0]

柯柯 iT邦新手 2 級 ‧ 2018-07-04 13:55:39 檢舉

$dest = '../../images/admin/product/'.'newname.jpg';
move_uploaded_file($file, $dest);

你試試看 我記得這樣可以改名 可是有點忘記@@

好了,需要用別的名稱就傳name,不傳就用預設
/images/emoticon/emoticon10.gif

火爆浪子 iT邦研究生 1 級 ‧ 2018-07-04 15:08:16 檢舉

所以不需要 [0]跟[$i] 嗎?

uploadFileByIndex 這個就能拿到名字了,處理第幾個,就回傳第幾個的名字,剩下就看你怎麼用了~

我要發表回答

立即登入回答