使用html5和php将多个文件上传到文件夹“uploads”

时间:2012-11-03 14:43:08

标签: php image html5 upload

我有一个上传图片的上传脚本。

我的目录如下所示: directory

我的index.php看起来像这样:

<html>

    <head>

        <!-- Link naar de stylesheet -->
        <link rel="stylesheet" type="text/css" href="style/default.css" />

    </head>
    <body>
        <center>

            <div id="title">
                <h1>Het "Vergeet-mij-nietje"</h1>
                <sup>Image Upload Script</sup>
            </div>

            <!-- Content -->
            <div id="content1">

                <?php

                    // Check if a post exist
                    if( !isset( $_POST['p'] ) ) { $_POST['p']= 0; }

                    // Include files
                    if( $_POST['p'] == 1 ){
                        include( "includes/uploadimage.php" );
                    }else{
                        include( "includes/uploadform.php" );
                    }

                ?>
            </div>
    </body>
</html>

在我的包含文件夹中,我有以下文件: uploadform.php uploadimage.php

我的uploadform.php如下所示:

<form method="post" enctype="multipart/form-data">

    Kies hier meerdere bestanden om te uploaden
    <br /> <br />
    <input type="hidden" name="p" value="1" />

    <input type="file" name="image" multiple />

    <br /> <br />

    <input type="submit" value="Upload"/>

</form>

注意多功能。

我的uploadimage.php看起来像这样:

<?php

    // variabelen.
    $name=          $_FILES['image']['name'];
    $temp=          $_FILES['image']['tmp_name'];
    $type=          $_FILES['image']['type'];
    $size=          $_FILES['image']['size'];
    $path=          'uploads/ ' . md5( rand( 0, 1000 ) .rand( 0, 1000 ) .rand( 0, 1000 ) .rand( 0, 1000 ) ) . '.jpg';
    $size2=         getimagesize( $temp );
    $width=         $size2[0];
    $height=        $size2[1];


    // Benodigdheden
    $maxwidth=      1281;
    $maxheight=     1081;
    $allowed=       array( 'image/jpeg', 'image/png', 'image/gif' );


    // Echo data.
    echo '
        '. $name .' <br />
        '. $temp .' <br />
        '. $type .' <br />
        '. $size .' <br />
        '. $path .' <br /><br />
        '. $width .' x
        '. $height .' <br />
    ';

    if( in_array( $type, $allowed   ) ){

        if( $width < $maxwidth && $height < $maxheight ){

            if( $size < 5242880 ){

            /*
                // Vorm van de foto. Dit is nodig bij het Resizen.
                if( $width == $height ){ $case=1;}
                if( $width >  $height ){ $case=2;}
                if( $width <  $height ){ $case=3;}

                switch( $case ){

                    // Vierkant
                    case 1;

                        $newwidth=      100;
                        $newheight=     100;

                    break;

                    // Liggende Rechthoek
                    case 2;

                        $newheight=     100;
                        $ratio=         $newheight / $height;
                        $newwidth=      round( $width * $ratio );

                        echo $newwidth.'x'.$newheight;

                    break;

                    // Staande Rechthoek
                    case 3;

                        $newwidth=      100;
                        $ratio=         $newwidth / $width;
                        $newheight=     round( $height * $ratio );


                }

            */

            }else{
                echo '<p><b>De foto die u zojuist heeft geupload is te groot. Upload een foto, kleiner dan 5mb.</b></p>';
            }


        }else{
            echo '<p><b>De foto die u zojuist heeft geupload heeft een te grote resolutie. Upload een kleinere foto.</b></p>';
        }

    }else{
        echo '<p><b>De foto die u zojuist heeft geupload is geen .jpg, .png of .gif. Deze extensie is niet toegestaan.</b></p>';
    }

    // Upload files.
    move_uploaded_file( $temp, $path );

    // Terug stuur link
    echo '<a href="index.php">Ga Terug</a>';



?>

请注意,我没有使用宽度和高度函数


我的问题:

我的问题是uploadimage.php无法上传多张图片。它当时只能上传1张图片。

如何更改uploadimage.php中的代码,以便一次上传多个文件。

感谢

1 个答案:

答案 0 :(得分:1)

我猜你发帖子时应该有一个数组

尝试替换:

<input type="file" name="image" multiple />

使用:

<input type="file" name="image[]" multiple />

uploadimage.php 中使用新的数组:$ _FILES ['image'] [i] ['name']其中'i'是您喜欢的图像编号有

使用循环来获取所有这些。

看看:PHP文档 http://php.net/manual/en/features.file-upload.multiple.php