【问题标题】:how to understand file size is more than FILE_MAX_SIZE and send error?如何理解文件大小超过 FILE_MAX_SIZE 并发送错误?
【发布时间】:2015-07-10 11:42:00
【问题描述】:

在我的表单中,我使用了两个文件输入并为每个文件设置了 MAX_FILE_SIZE,当我提交文件大于 MAX_FILE_SIZE 的表单时,它不会做任何事情。我该如何处理并报告用户的文件大于最大大小? 我可以使用 php 上传类来做到这一点,但是当我使用 MAX_FILE_SIZE 时它不起作用,或者我的类根本没有被调用。

<div class="form-group">
                        <label for="comp_file">فایل فشرده : </label>
                       <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_zipfile_size; ?>" >
                       <input type="file" name='comp_file' class="form-control" id="comp_file">
                       <p class="help-block">فایل قابل دانلود را انتخاب کنبد. 
                       فایل باید در حالتد فشرده قرار داشت باشد.</p>
                    </div>

                    <div class="form-group">
                        <label for="file_image">عکس مربوط به مقاله : </label>
                       <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_image_size; ?>" >
                       <input type="file" name='file_image' class="form-control" id="file_image">
                       <p class="help-block">در صورتی که عکسی مناسب با مقاله در اختیار دارید ارسال کنید.</p>
                    </div>

【问题讨论】:

  • 当文件大于 FILE_MAX_SIZE 时似乎根本没有设置提交。

标签: php


【解决方案1】:

MAX_FILE_SIZE 用于浏览器的客户端。因此,你不能相信它。

当你拿到PHP Size上的文件后,手动控制它的大小:

if ($_FILES["comp_file"]["size"] > 1024 * 1024 * 8){ //8mo, adjust as you need
    exit("File too big");
}

显然,这个exit 有点苛刻。适应你需要的东西。

【讨论】:

  • 是的,我知道,但我想仔细检查并发送 php 文件,然后您可以检查文件大小,但使用 MAX_FILE_SIZE 可以阻止发送文件
  • MAX_FILE_SIZE 完全是客户端。如果浏览器不尊重它,你就无能为力了。
【解决方案2】:

使用 java 脚本向用户验证上传的最大文件大小,如果文件大小大于最大文件大小,则向用户发出一条消息并停止提交操作。 或者您可以检查服务器大小的文件大小并使用 php 本身向用户填充警告消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    相关资源
    最近更新 更多