這裡先要感謝吳弘凱老師寫的實戰php7書中提到的圖片上傳套件php_class_upload,真的非常好用,比起之前寫一大堆php程式這個套件簡單明瞭又好維護,真是太讚了,不過因為書中的範例只有單張圖片上傳的方法,最近在開發客戶新佈景時需要用到多張上傳的圖片功能,於是去php_class_upload官網查了一下faq有提到多圖上傳的程式寫法,經過修改之後已經可以多張圖片上傳了,吧這功能分享給大家參考。
1、先去php_class_upload官網下載php_class_upload套件
https://www.verot.net/
裡面有upload檔,放到模組的class目錄中。
2、html結構部分增加樣上傳的欄位,簡略說明,當然如果您要html5的多圖上傳框也行,這裡是用傳統的方式說明。
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="upfile[]" />
<input type="file" name="upfile[]" />
<input type="file" name="upfile[]" />
<input type="submit" value="Send" />
</form>
3、於php檔案中加上以下的code
<?php
function save_pic($up_id= "",$width="",$height=""){
include_once "class/upload/class.upload.php"; //引入class.upload.php檔
//多圖上傳
$files = array();
foreach ($_FILES['upfile'] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files)) $files[$i] = array();
$files[$i][$k] = $v; } }
foreach ($files as $file) {
$handle = new Upload($file);
if ($handle->uploaded) {
$handle->file_new_name_body = $up_id; //檔案名稱
$handle->file_overwrite = true;
$handle->image_resize = true;
$handle->image_x = $width; //圖檔寬度
$handle->image_y = $height; //圖檔高度
// $pic->image_ratio_y = true; // 按比例縮放高度
$handle->image_convert = 'png'; //轉換後檔案類型
$handle->image_ratio_crop = false; $handle->Process(存放縮圖的主機實體路徑.'/uploads/img/');
if ($handle->processed) {
echo 'OK'; } else {
echo 'Error: ' .$handle->error;
} } else {
echo 'Error: ' . $handle->error; }
unset($handle);
}
?>備註說明:function中的$up_id= "",$width="",$height="" 需要傳入對應的參數值。
這樣就能使用多圖上傳的功能了!!
教學撰寫:徐嘉裕 Neil hsu
1、先去php_class_upload官網下載php_class_upload套件
https://www.verot.net/
裡面有upload檔,放到模組的class目錄中。
2、html結構部分增加樣上傳的欄位,簡略說明,當然如果您要html5的多圖上傳框也行,這裡是用傳統的方式說明。
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="upfile[]" />
<input type="file" name="upfile[]" />
<input type="file" name="upfile[]" />
<input type="submit" value="Send" />
</form>
3、於php檔案中加上以下的code
<?php
function save_pic($up_id= "",$width="",$height=""){
include_once "class/upload/class.upload.php"; //引入class.upload.php檔
//多圖上傳
$files = array();
foreach ($_FILES['upfile'] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files)) $files[$i] = array();
$files[$i][$k] = $v; } }
foreach ($files as $file) {
$handle = new Upload($file);
if ($handle->uploaded) {
$handle->file_new_name_body = $up_id; //檔案名稱
$handle->file_overwrite = true;
$handle->image_resize = true;
$handle->image_x = $width; //圖檔寬度
$handle->image_y = $height; //圖檔高度
// $pic->image_ratio_y = true; // 按比例縮放高度
$handle->image_convert = 'png'; //轉換後檔案類型
$handle->image_ratio_crop = false; $handle->Process(存放縮圖的主機實體路徑.'/uploads/img/');
if ($handle->processed) {
echo 'OK'; } else {
echo 'Error: ' .$handle->error;
} } else {
echo 'Error: ' . $handle->error; }
unset($handle);
}
?>備註說明:function中的$up_id= "",$width="",$height="" 需要傳入對應的參數值。
這樣就能使用多圖上傳的功能了!!
教學撰寫:徐嘉裕 Neil hsu
留言
張貼留言