php - php中文件上传的验证

标签 php html

您好,如果文件大小超过特定大小,我正在尝试限制文件上传 但我的问题是如果文件大小超过最大大小我没有得到任何信息 关于 php 服务器中的文件,我在 HTML 中的代码如下,请帮助我为什么我 没有得到信息。

<?php echo $form->create('Add', array('id'=>'addFile', 'enctype'=>'multipart/form-data', 'url'=>'/content/upload?path='.$contentItem['url_path']),array(         
    'inputDefaults' => array('label' => false))); ?>    
<div class="_100 formText">
    <label>Section&nbsp;: </label>
     <input type="input" value="<?php echo (!empty($contentItem['display_text'])) ? $contentItem['display_text'] : $contentItem['parent_disp_txt'] ;?>" name="data[Add][section]" readonly="readonly"/>
</div>
<div class="clear" style="height: 5px;"></div>
<div class="_100 formText">
    <label>File Name&nbsp;: </label>
     <input type="input" value="" name="data[Add][file]" class="filePath"/>
</div>
<div class="clear" style="height: 5px;"></div>
<div class="_99 formText">
    <label>File Description&nbsp;: </label>
    <textarea rows="3" cols="" name="data[Add][description]" class="description" style="resize:none;"></textarea>
</div>
<div class="clear" style="height: 15px;"></div>
<div class="_99 formText">
    <label>Select File to Upload: </label>
    <input type="file" name="data[Add][upload]" class="filesToUpload" id="file"/>
</div>
<?php echo $html->tags['formend'];?>    

最佳答案

if(isset($_FILES['uploaded_file'])) {
    $errors     = array();
    $maxsize    = 2097152;
    $acceptable = array(
        'application/pdf',
        'image/jpeg',
        'image/jpg',
        'image/gif',
        'image/png'
    );

    if(($_FILES['uploaded_file']['size'] >= $maxsize) || ($_FILES["uploaded_file"]["size"] == 0)) {
        $errors[] = 'File too large. File must be less than 2 megabytes.';
    }

    if(!in_array($_FILES['uploaded_file']['type'], $acceptable) && (!empty($_FILES["uploaded_file"]["type"]))) {
    $errors[] = 'Invalid file type. Only PDF, JPG, GIF and PNG types are accepted.';
}

if(count($errors) === 0) {
    move_uploaded_file($_FILES['uploaded_file']['tmpname'], '/store/to/location.file');
} else {
    foreach($errors as $error) {
        echo '<script>alert("'.$error.'");</script>';
    }

    die(); //Ensure no more processing is done
}
}

试试这个代码。

关于php - php中文件上传的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18309179/

相关文章:

php - Docker:如何安装 PHP 7.4 扩展 ext-http?

php - MySQL 中的前向后记录与主数据中的相同数据

php - AJAX 请求返回 JSON,不工作

html - 将表格中的两行合并在一起,以便没有单元格可见

html - 无法设置字体粗细

javascript - ajax函数打不开页面

PHP - 从对象实例调用静态函数有效吗?

javascript - 循环仅在添加 span 标记时显示数组中的最后一个字符串

javascript - 如何使用 javascript 更改输入的样式?

html - Border + Heading + Navigation - 定位问题