繁体   English   中英

用PHP处理大于10mb的文件上传

[英]Handling file uploads larger than 10mb in PHP

我有这个表格

<table class="table">
        <div class="error"><?php if(!empty($errors))echo output_errors($errors);?></div>
        <form action = "upload_music.php" method = "POST" enctype = "multipart/form-data">
        <tr>
            <td>Artist:</td>
            <td><input type="text" name="artist" value=""></td>
        </tr>
        <tr>
            <td>Track Name:</td>
            <td><input type="text" name="track_name" value=""></td>
        </tr><?php print_r($_FILES);?>
        <tr>
            <td>Genre:</td>
            <td>
            <?php  
                $genres = Genre:: getAllGenre();
            ?>
                <select name = "genre">
                    <?php 
                        for($i = 0  ; $i<count($genres);$i++){
                        ?>
                        <option value = "<?php echo "{$i}"?>"><?php echo "{$genres[$i]['genre']}";?> </option>
                    <?php   }

                    ?>
                </select>
            </td>
        </tr>
        </tr>
            <td>Track:</td>
            <td><input type='file' name='file_path'></td>
        </tr>

        <tr>
            <td>Track Description:</td>
            <td><textarea name="track_desc" rows ="5"></textarea></td>
        </tr>
        <tr>
            <td><input class="btn btn-success" type="submit" name = "submit" value="Upload"></td>
        </tr>
        <form>
    </table>

用户必须在哪里上传曲目。 每次我上传大于7mb的文件时, print_r($_FILES); 打印一个空数组。 但是当我上传的文件小于8mb或mp3时, print_r($_FILES); 打印带有值的数组。

我猜$ _FILES无法读取某些文件,因为它们的大小大于8mb? 如果是这种情况,我将如何上传大于8mb的文件? 我关于POST和FILE上传的php.ini设置也像这样

post_max_size = 128M
upload_max_filesize = 128M

如果你们需要额外的信息,我正在使用XAMPP。

看来您正在寻找错误的php.ini,因为默认的post_max_size通常为8M。

重新启动Web服务器并查看phpInfo()

您可以使用此代码轻松地在PHP中覆盖ini。

ini_set('memory_limit', '32M');
ini_set('post_max_size', '16M');
ini_set('upload_max_filesize', '16M');

我没有比更好的答案了

我建议使用每个脚本的ini_set,因为您不一定要增加站点范围的执行时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM