Jadual Kandungan
PHP多文件上传操作
Rumah pembangunan bahagian belakang tutorial php PHP多文件上传操作_PHP教程

PHP多文件上传操作_PHP教程

Jul 13, 2016 am 10:21 AM
dokumen

PHP多文件上传操作

 
 
其实多文件上传和单文件上传大同小异,原理都是一样的,只是在代码上做了点小技巧。
 
 
 
首先还是index.html上传表单,只是把之前上传文件表单里的file更改成了file[]
 
复制代码
   
    upload files
 
   
       
        上传文件:
        上传文件:
        上传文件:
   
       
   
复制代码
在upload.php用$_FILES打印看看
 
  print_r($_FILES); 
?>
得出下面多维数组
 
复制代码
Array
(
    [file] => Array
        (
            [name] => Array
                (
                    [0] => 照片1.jpg
                    [1] => 照片2.jpg
                    [2] => 照片3.jpg
                )
 
            [type] => Array
                (
                    [0] => image/jpeg
                    [1] => image/jpeg
                    [2] => image/jpeg
                )
 
            [tmp_name] => Array
                (
                    [0] => F:\wamp\tmp\php36C7.tmp
                    [1] => F:\wamp\tmp\php36C8.tmp
                    [2] => F:\wamp\tmp\php36C9.tmp
                )
 
            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )
 
            [size] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                )
 
        )
 
)
复制代码
按照单文件上传的原理,先想想我们需要得到什么?
 
很明显我们需要得到一个关于文件信息的数组,数组里包含name,type,tmp_name,error,size,而此时我们得到的是个多维数组,虽然对应的键值都存在,但它是多维的,
 
我们只需要把它拆分,比如上面的3个文件,我们只需要把它拆分成对应的3个文件信息数组就行了。
 
拆分数组的结构
 
复制代码
Array
(
    [0] => Array
        (
            [name] => 照片1.jpg
            [type] => image/jpeg
            [tmp_name] => F:\wamp\tmp\php13C1.tmp
            [error] => 0
            [size] => 385150
        )
 
    [1] => Array
        (
            [name] => 照片2.jpg
            [type] => image/jpeg
            [tmp_name] => F:\wamp\tmp\php13D2.tmp
            [error] => 0
            [size] => 242043
        )
 
    [2] => Array
        (
            [name] => 照片3.jpg
            [type] => image/jpeg
            [tmp_name] => F:\wamp\tmp\php13D3.tmp
            [error] => 0
            [size] => 488293
        )
 
)
复制代码
下面是拆分重组数组代码
 
复制代码
    
 
    //print_r($_FILES['file']);
    $arr=$_FILES['file'];
    $files=array();
    for($i=0;$i
        $files[$i]['name']=$arr['name'][$i];
        $files[$i]['type']=$arr['type'][$i];
        $files[$i]['tmp_name']=$arr['tmp_name'][$i];
        $files[$i]['error']=$arr['error'][$i];
        $files[$i]['size']=$arr['size'][$i];
    }
 
    print_r($files);
?>
复制代码
 
 
剩下的东西就简单了,重复单文件上传的步骤,遍历处理一遍该数组就行了。
 
代码如下:
 
复制代码
    
 
    //print_r($_FILES['file']);
    $arr=$_FILES['file'];
    $files=array();
    for($i=0;$i
        $files[$i]['name']=$arr['name'][$i];
        $files[$i]['type']=$arr['type'][$i];
        $files[$i]['tmp_name']=$arr['tmp_name'][$i];
        $files[$i]['error']=$arr['error'][$i];
        $files[$i]['size']=$arr['size'][$i];
    }
 
    for($i=0;$i
    //取得上传文件信息
    $fileName=$files[$i]['name'];
    $fileType=$files[$i]['type'];
    $fileError=$files[$i]['type'];
    $fileSize=$files[$i]['size'];
    $tempName=$files[$i]['tmp_name'];//临时文件名
    
    //定义上传文件类型
    $typeList = array("image/jpeg","image/jpg","image/png","image/gif"); //定义允许的类型
 
    if($fileError>0){
            //上传文件错误编号判断
            switch ($fileError) {
                case 1:
                    $message="上传的文件超过了php.ini 中 upload_max_filesize 选项限制的值。"; 
                    break;
                case 2:
                    $message="上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。"; 
                    break;
                case 3:
                    $message="文件只有部分被上传。"; 
                    break;
                case 4:
                    $message="没有文件被上传。";
                    break;
                case 6:
                    $message="找不到临时文件夹。"; 
                    break;
                case 7:
                    $message="文件写入失败"; 
                    break;
                case 8:
                    $message="由于PHP的扩展程序中断了文件上传";
                    break;
            }
 
            exit("文件上传失败:".$message);
 
        }
    if(!is_uploaded_file($tempName)){
        //判断是否是POST上传过来的文件
        exit("不是通过HTTP POST方式上传上来的");
    }else{
        if(!in_array($fileType, $typeList)){
            exit("上传的文件不是指定类型");
        }else{
            if(!getimagesize($tempName)){
                //避免用户上传恶意文件,如把病毒文件扩展名改为图片格式
                exit("上传的文件不是图片");
            }
        }
            if($fileSize>1000000){
                //对特定表单的上传文件限制大小
                exit("上传文件超出限制大小");
            }else{
                //避免上传文件的中文名乱码
                $fileName=iconv("UTF-8", "GBK", $fileName);//把iconv抓取到的字符编码从utf-8转为gbk输出
                $fileName=str_replace(".", time().".", $fileName);//在图片名称后加入时间戳,避免重名文件覆盖
                if(move_uploaded_file($tempName, "uploads/".$fileName)){
                    echo "上传文件成功!";
                }else{
                    echo "上传文件失败";
                }
            }
 
        }
 
    }
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/855346.htmlTechArticlePHP多文件上传操作 其实多文件上传和单文件上传大同小异,原理都是一样的,只是在代码上做了点小技巧。 首先还是index.html上传表单,只...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk memulihkan fail WeChat yang telah tamat tempoh Bolehkah fail WeChat yang telah tamat tempoh dipulihkan? Bagaimana untuk memulihkan fail WeChat yang telah tamat tempoh Bolehkah fail WeChat yang telah tamat tempoh dipulihkan? Feb 22, 2024 pm 02:46 PM

Buka WeChat, pilih Tetapan dalam Saya, pilih Umum dan kemudian pilih Ruang Storan, pilih Pengurusan dalam Ruang Storan, pilih perbualan di mana anda ingin memulihkan fail dan pilih ikon tanda seru. Tutorial Model Berkenaan: iPhone13 Sistem: iOS15.3 Versi: WeChat 8.0.24 Analisis 1 Mula-mula buka WeChat dan klik pilihan Tetapan pada halaman Saya. 2 Kemudian cari dan klik Pilihan Umum pada halaman tetapan. 3Kemudian klik Ruang Storan pada halaman umum. 4 Seterusnya, klik Urus pada halaman ruang storan. 5Akhir sekali, pilih perbualan di mana anda ingin memulihkan fail dan klik ikon tanda seru di sebelah kanan. Tambahan: Fail WeChat biasanya tamat tempoh dalam beberapa hari Jika fail yang diterima oleh WeChat belum diklik, sistem WeChat akan mengosongkannya selepas 72 jam Jika fail WeChat telah dilihat.

Foto tidak boleh membuka fail ini kerana format tidak disokong atau fail rosak Foto tidak boleh membuka fail ini kerana format tidak disokong atau fail rosak Feb 22, 2024 am 09:49 AM

Di Windows, apl Photos ialah cara yang mudah untuk melihat dan mengurus foto dan video. Melalui aplikasi ini, pengguna boleh mengakses fail multimedia mereka dengan mudah tanpa memasang perisian tambahan. Walau bagaimanapun, kadangkala pengguna mungkin menghadapi beberapa masalah, seperti menghadapi mesej ralat "Fail ini tidak boleh dibuka kerana format tidak disokong" semasa menggunakan apl Foto atau kerosakan fail semasa cuba membuka foto atau video. Keadaan ini boleh mengelirukan dan menyusahkan pengguna, memerlukan beberapa penyiasatan dan pembetulan untuk menyelesaikan isu tersebut. Pengguna melihat ralat berikut apabila mereka cuba membuka foto atau video pada apl Foto. Maaf, Foto tidak boleh membuka fail ini kerana format tidak disokong atau fail pada masa ini

Persediaan untuk penyingkiran mengambil masa yang lama dalam Windows 11/10 Persediaan untuk penyingkiran mengambil masa yang lama dalam Windows 11/10 Feb 19, 2024 pm 07:42 PM

Dalam artikel ini, kami akan memperkenalkan cara menyelesaikan masalah gesaan "Bersedia untuk memadam" apabila memadam fail atau folder dalam sistem Windows. Gesaan ini bermakna sistem sedang menjalankan beberapa operasi latar belakang, seperti menyemak kebenaran fail, mengesahkan sama ada fail itu diduduki oleh program lain, mengira saiz item yang akan dipadamkan, dsb. Kami akan memberikan anda beberapa penyelesaian untuk memastikan anda berjaya memadamkan fail anda tanpa menunggu terlalu lama. Mengapakah Windows mengambil masa yang lama untuk memadam fail? Masa yang diperlukan Windows untuk menyediakan fail untuk pemadaman dipengaruhi oleh pelbagai faktor, termasuk saiz fail, kelajuan peranti storan dan proses latar belakang. Gesaan "Bersedia untuk memadam" yang panjang atau tersekat mungkin menunjukkan sumber sistem yang tidak mencukupi, ralat cakera atau isu sistem fail. wujud

Bolehkah fail format Tmp dipadamkan? Bolehkah fail format Tmp dipadamkan? Feb 24, 2024 pm 04:33 PM

Fail format Tmp ialah format fail sementara yang biasanya dihasilkan oleh sistem atau program komputer semasa pelaksanaan. Tujuan fail ini adalah untuk menyimpan data sementara untuk membantu program berjalan dengan betul atau meningkatkan prestasi. Sebaik sahaja pelaksanaan program selesai atau komputer dimulakan semula, fail tmp ini selalunya tidak diperlukan lagi. Oleh itu, untuk fail format Tmp, ia pada asasnya boleh dipadam. Selain itu, pemadaman fail tmp ini boleh mengosongkan ruang cakera keras dan memastikan operasi normal komputer. Walau bagaimanapun, sebelum memadam fail format Tmp, kita perlu

Apa yang perlu dilakukan jika kod ralat 0x80004005 muncul Editor akan mengajar anda cara menyelesaikan kod ralat 0x80004005. Apa yang perlu dilakukan jika kod ralat 0x80004005 muncul Editor akan mengajar anda cara menyelesaikan kod ralat 0x80004005. Mar 21, 2024 pm 09:17 PM

Apabila memadam atau menyahmampat folder pada komputer anda, kadangkala kotak dialog segera "Ralat 0x80004005: Ralat Tidak Ditentukan" akan muncul Bagaimana anda harus menyelesaikan situasi ini? Sebenarnya terdapat banyak sebab mengapa kod ralat 0x80004005 digesa, tetapi kebanyakannya disebabkan oleh virus. Kami boleh mendaftarkan semula dll untuk menyelesaikan masalah tersebut . Sesetengah pengguna digesa dengan kod ralat 0X80004005 apabila menggunakan komputer mereka Ralat 0x80004005 disebabkan terutamanya oleh komputer tidak mendaftarkan fail perpustakaan pautan dinamik tertentu dengan betul, atau oleh tembok api yang tidak membenarkan sambungan HTTPS antara komputer dan Internet. Jadi bagaimana pula

Bagaimana untuk memindahkan fail dari Cakera Awan Quark ke Cakera Awan Baidu? Bagaimana untuk memindahkan fail dari Cakera Awan Quark ke Cakera Awan Baidu? Mar 14, 2024 pm 02:07 PM

Quark Netdisk dan Baidu Netdisk pada masa ini merupakan perisian Netdisk yang paling biasa digunakan untuk menyimpan fail Jika anda ingin menyimpan fail dalam Quark Netdisk ke Baidu Netdisk, bagaimana anda melakukannya? Dalam isu ini, editor telah menyusun langkah tutorial untuk memindahkan fail dari komputer Quark Network Disk ke Baidu Network Disk Mari kita lihat cara mengendalikannya. Bagaimana untuk menyimpan fail dari Cakera Rangkaian Quark ke Cakera Rangkaian Baidu? Untuk memindahkan fail daripada Cakera Rangkaian Quark ke Cakera Rangkaian Baidu, anda perlu memuat turun fail yang diperlukan terlebih dahulu daripada Cakera Rangkaian Quark, kemudian pilih folder sasaran dalam klien Cakera Rangkaian Baidu dan bukanya. Kemudian, seret dan lepaskan fail yang dimuat turun daripada Cakera Awan Quark ke dalam folder yang dibuka oleh klien Cakera Awan Baidu, atau gunakan fungsi muat naik untuk menambah fail pada Cakera Awan Baidu. Pastikan anda menyemak sama ada fail telah berjaya dipindahkan dalam Cakera Awan Baidu selepas muat naik selesai. Itu sahaja

Bagaimana untuk memasang fail GHO Bagaimana untuk memasang fail GHO Feb 19, 2024 pm 10:06 PM

Fail gho ialah fail imej GhostImage, yang biasanya digunakan untuk menyandarkan keseluruhan cakera keras atau data partition ke dalam fail. Dalam beberapa kes tertentu, kami perlu memasang semula fail gho ini kembali ke cakera keras untuk memulihkan cakera keras atau partition kepada keadaan sebelumnya. Berikut akan memperkenalkan cara memasang fail gho. Pertama, sebelum pemasangan, kita perlu menyediakan alat dan bahan berikut: Fail gho entiti: Pastikan anda mempunyai fail gho yang lengkap, yang biasanya mempunyai akhiran .gho dan mengandungi sandaran

Apakah fail hiberfil.sys? Bolehkah hiberfil.sys dipadamkan? Apakah fail hiberfil.sys? Bolehkah hiberfil.sys dipadamkan? Mar 15, 2024 am 09:49 AM

Baru-baru ini, ramai netizen bertanya kepada editor, apakah itu fail hiberfil.sys? Bolehkah hiberfil.sys mengambil banyak ruang pemacu C dan dipadamkan? Editor boleh memberitahu anda bahawa fail hiberfil.sys boleh dipadamkan. Mari kita lihat butiran di bawah. hiberfil.sys ialah fail tersembunyi dalam sistem Windows dan juga fail hibernasi sistem. Ia biasanya disimpan dalam direktori akar pemacu C, dan saiznya bersamaan dengan saiz memori yang dipasang sistem. Fail ini digunakan apabila komputer sedang hibernasi dan mengandungi data memori sistem semasa supaya ia boleh dipulihkan dengan cepat kepada keadaan sebelumnya semasa pemulihan. Oleh kerana saiznya adalah sama dengan kapasiti memori, ia mungkin mengambil jumlah ruang cakera keras yang lebih besar. hiber

See all articles