上传文件限制

2024-03-30

如何限制上传文件!

例如:- 如果数据库已有 5 个条目,则不应采用第 6 个条目。并展示您只能拥有 5 个文件

我的代码:-

<?php

    error_reporting( ~E_NOTICE ); // avoid notice

    require_once 'dbconfig.php';

    if(isset($_POST['btnsave']))
    {
        $username = $_POST['user_name'];// user name
        $userjob = $_POST['user_job'];// user email

        $imgFile = $_FILES['user_image']['name'];
        $tmp_dir = $_FILES['user_image']['tmp_name'];
        $imgSize = $_FILES['user_image']['size'];


        if(empty($username)){
            $errMSG = "Please Enter Name.";
        }
        else if(empty($userjob)){
            $errMSG = "Please Enter Description.";
        }
        else if(empty($imgFile)){
            $errMSG = "Please Select Image File.";
        }
        else
        {
            $upload_dir = 'user_images/'; // upload directory

            $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension

            // valid image extensions
            $valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'txt'); // valid extensions

            // rename uploading image
            $userpic = rand(1000,1000000).".".$imgExt;

            // allow valid image file formats
            if(in_array($imgExt, $valid_extensions)){           
                // Check file size
                if($imgSize < 10000000)             {
                    move_uploaded_file($tmp_dir,$upload_dir.$userpic);
                }
                else{
                    $errMSG = "Sorry, your file is too large.";
                }
            }
            else{
                $errMSG = "Sorry, this file is not allowed.";       
            }
        }


        // if no error occured, continue ....
        if(!isset($errMSG))
        {
            $stmt = $DB_con->prepare('INSERT INTO tbl_users(userName,userProfession,userPic) VALUES(:uname, :ujob, :upic)');
            $stmt->bindParam(':uname',$username);
            $stmt->bindParam(':ujob',$userjob);
            $stmt->bindParam(':upic',$userpic);

            if($stmt->execute())
            {
                $successMSG = "new record succesfully inserted ...";
                header("refresh:1;index.php"); // redirects image view page after 1 seconds.
            }
            else
            {
                $errMSG = "error while inserting....";
            }
        }
    }
?>

那么,我应该添加什么来提供我的输出!

我的数据库中只需要 5 个文档。如果用户尝试添加超过 5 个文档,则应显示错误。


+1 票给aidinMC https://stackoverflow.com/users/3398171/aidinmc

Answer https://stackoverflow.com/questions/46138084/limit-of-uploading-documents/46138519#46138519 of aidinMC https://stackoverflow.com/users/3398171/aidinmc部分解决了你的问题。

有两个小错误aidinMC https://stackoverflow.com/users/3398171/aidinmc answer https://stackoverflow.com/questions/46138084/limit-of-uploading-documents/46138519#46138519

1) 罢工: from else:

  }
else
    $errMSG = "You already insert 5 rows";
endif;

2)改变if($count >= 5) to if($count < 5)

$count = $data[0]['rows'];
if($count < 5)
{

改完这两个错误后Answer https://stackoverflow.com/questions/46138084/limit-of-uploading-documents/46138519#46138519 of aidinMC https://stackoverflow.com/users/3398171/aidinmc将工作!但特别是看到你的评论后上传文件限制 https://stackoverflow.com/questions/46138084/limit-of-uploading-documents/46138519#comment79239269_46138519 & 上传文件限制 https://stackoverflow.com/questions/46138084/limit-of-uploading-documents/46138519#comment79239394_46138519它不会给出你想要的结果。

所以你想要的就在这里:-

<?php
error_reporting( ~E_NOTICE ); // avoid notice
require_once 'dbconfig.php';

    if(isset($_POST['btnsave']))
    {
        $username = $_POST['user_name'];// user name
        $userjob = $_POST['user_job'];// user email

        $imgFile = $_FILES['user_image']['name'];
        $tmp_dir = $_FILES['user_image']['tmp_name'];
        $imgSize = $_FILES['user_image']['size'];


        if(empty($username)){
            $errMSG = "Please Enter Name.";
        }
        else if(empty($userjob)){
            $errMSG = "Please Enter Description.";
        }
        else if(empty($imgFile)){
            $errMSG = "Please Select Image File.";
        }
        else
        {
            $upload_dir = 'user_images/'; // upload directory

            $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension

            // valid image extensions
            $valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'txt'); // valid extensions

            // rename uploading image
            $userpic = rand(1000,1000000).".".$imgExt;

            // allow valid image file formats
            if(in_array($imgExt, $valid_extensions)){           
                // Check file size
                if($imgSize < 10000000)             {
                    move_uploaded_file($tmp_dir,$upload_dir.$userpic);
                }
                else{
                    $errMSG = "Sorry, your file is too large.";
                }
            }
            else{
                $errMSG = "Sorry, this file is not allowed.";       
            }
        }


        // if no error occured, continue ....
        if(!isset($errMSG))
        {
            $stmt = $DB_con->prepare('INSERT INTO tbl_users(userName,userProfession,userPic) VALUES(:uname, :ujob, :upic)');
            $stmt->bindParam(':uname',$username);
            $stmt->bindParam(':ujob',$userjob);
            $stmt->bindParam(':upic',$userpic);
$data = $DB_con->query("SELECT COUNT(*) AS rows FROM tbl_users WHERE 1")->fetchall();
$count = $data[0]['rows'];
if($count < 5)
{
            if($stmt->execute())
            {
                $successMSG = "new record succesfully inserted ...";
                header("refresh:1;index.php"); // redirects image view page after 1 seconds.
            }
            else
            {
                $errMSG = "error while inserting....";
            }
        }
        else
{
    $errMSG = "You already insert 5 rows";
}
    }
}

?>

我刚刚编辑了代码的放置Answered https://stackoverflow.com/questions/46138084/limit-of-uploading-documents/46138519#46138519 by aidinMC https://stackoverflow.com/users/3398171/aidinmc并修复了一些错误Answer https://stackoverflow.com/questions/46138084/limit-of-uploading-documents/46138519#46138519 of aidinMC https://stackoverflow.com/users/3398171/aidinmc.

希望这会起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

上传文件限制 的相关文章

  • 在 PHP 中将 CSV 写入不带括号的文件

    是否有本机函数或实体类 库用于将数组写入 CSV 文件中的一行而无需封装 fputcsv将默认为 如果没有为封装参数传入任何内容 谷歌让我失望了 返回一大堆有关的页面的结果 fputcsv PEAR 的库做的事情或多或少与fputcsv 工
  • 重复使用相同的卷曲手柄。性能大幅提升?

    在 PHP 脚本中 我对不同的 URL 执行了许多不同的curl GET 请求 一百个 将重复使用来自curl init提高性能 还是与请求的响应时间相比可以忽略不计 我这么问是因为在当前的架构中保持相同的句柄并不容易 交叉发布自我应该关闭
  • 外键和索引

    我有 2 张桌子 products and 类别 每个类别有很多产品 一个产品可以属于多个类别 products product id int primary auto increment name unique etc 类别 catego
  • session_regenerate_id 没有创建新的会话 id

    我有一个脚本 旨在完成当前会话并开始新的会话 我使用了一段代码 它在我的开发计算机上运行良好 但是 当我将其发布到生产服务器时 会话 ID 始终保持不变 以下是我重新启动会话的代码 session start SESSION array P
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • 我应该使用平面表还是标准化数据库?

    我目前正在开发一个使用 MySQL 数据库作为后端的 Web 应用程序 在继续下一步之前 我需要知道什么更适合我的情况 简而言之 在这个应用程序中 用户将能够使用任何数字字段 他们决定 构建自己的表单 现在我将其全部存储在通过外键链接的几个
  • SQLAlchemy - 批量插入忽略:“重复条目”

    我有一个名为user data 列id and user id作为唯一的密钥 我想将一些历史数据导入到该表中 我用批量插入映射 http docs sqlalchemy org en rel 1 0 orm session api html
  • SQL UPDATE 语句根据另一个现有行更新列

    基本上我有一个与下表具有相似格式的表格 我想做的是根据这个逻辑更新 Col4 如果 Col2 为空 则用 Col3 更新 Col4 如果 Col2 不为 null 则在 Col1 中查找与 Col2 中的值匹配的值 使用 col3 中的相应
  • TOMCAT 6 中的 PHP - 异常

    我一直在努力融入PHP in APACHE TOMCAT 6依照指示second answer为了QUESTION https stackoverflow com questions 779246 run a php app using t
  • php - 我应该加密电子邮件地址吗?

    当用户注册时 我应该将他们的电子邮件按原样存储在数据库中还是对其进行哈希处理 我希望稍后能够解密 那么我应该使用 md5 吗 谢谢你 No md5 is 单向哈希函数 http en wikipedia org wiki Cryptogra
  • 使用 PHP 的 Google Glass GDK 身份验证

    我正在尝试点击此链接来验证 GDK 中的用户 https developers google com glass develop gdk authentication https developers google com glass de
  • PHP 中的 NOW() 函数

    是否有 PHP 函数以与 MySQL 函数相同的格式返回日期和时间NOW 我知道如何使用date 但我想问是否有专门用于此的功能 例如 返回 2009 12 01 00 00 00 您可以使用date https www php net m
  • 未捕获的异常“Google_IO_Exception”,消息为“HTTP 错误:无法连接”

    我有一个任务 查询 运行一些从 gmail 邮箱检索数据的 php 代码 直到上周五 2015 年 4 月 10 日 它一直工作正常 现在我收到以下错误日志 E 11 58 26 094 2015 04 15 200 3 38 KB 14
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 计算 mysql 数据库行数的最佳方法

    在遇到 mysql 查询加载时间慢的问题后 我现在正在寻找计算行数的最佳方法 我曾经愚蠢地使用过mysql num rows 函数来做到这一点 现在意识到这是最糟糕的方法 我实际上正在制作一个分页来用 PHP 制作页面 我找到了几种计算行数
  • 将 MySQL 结果作为 PHP 数组

    mysql 表 config name config value allow autologin 1 allow md5 0 当前的 php 代码 sth mysql query SELECT rows array while r mysq
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • 检查文件权限

    我怎样才能检查file permissions 无需通过运行操作系统特定命令passthru or exec Use 文件权限 http php net fileperms功能 clearstatcache echo substr spri
  • PHP cURL 在本地工作,在 AWS 服务器上出现错误 77

    最新更新 脚本作为管理员用户通过 SSH shell 作为 php script php 成功运行 当由 nginx 用户运行时 curl 命令无法执行 https 请求 所以我猜测这是nginx用户无法正确使用curl的问题 我已经检查了
  • 文件修改时间检查的成本

    对于Linux下包含少量字节的文件 我只需要处理自上次处理以来发生更改的时间 我通过调用 PHP 检查文件是否被更改clearstatcache filemtime 定期 由于整个文件总是很小 因此删除对 filemtime 的调用并通过将

随机推荐

  • 在Scheme中插入二叉树

    我想知道如何将列表中的元素插入二叉搜索树 我想知道为什么下面的代码不能按我的预期工作 输出是 4 1 5 13 6 我的下一个问题是对列表中的元素进行排序 但现在我只想插入它们 我的输出对于我所说的问题是否正确 我的代码如下 define
  • C 指针的一元加法如何工作?

    我知道一元运算符 对数字加一 然而 我发现如果我对 int 指针执行此操作 它会增加 4 我系统上 int 的大小 为什么要这样做 例如 以下代码 int main void int a malloc 5 sizeof int a 0 42
  • 使用适用于 Android 的 Jack 编译器获取未知属性“类路径”

    我正在尝试用下一个编译我的项目杰克编译器 https source android com source jack html 我刚刚将 Android Studio 更新到 2 2 Beta 并将我的 gradle 插件更新到 2 14 1
  • 从 Javascript Transformers 访问 Mirth Connect REST API (Mirth 3.5.1)

    我正在努力从 mirth connect 通道的源 javascript 转换器访问 mirth connect Rest api 端点 我的目标是能够使用转换器中的 javascript 代码导出和导入通道组 我知道不可能使用 XHR 因
  • 使用元 http-equiv 标记进行重定向时,避免将页面添加到浏览器历史记录中

    我有一个网页 它使用以下命令重定向到所需的目标网址 我想避免第一页出现在浏览器历史记录中 特别是 在手机 Android iOS 等 中 我希望后退按钮可以跳过重定向页面 您有两个选择 要么使用真正的 HTTP 重定向 要么使用 JavaS
  • 制作一个 Angular *ngFor 绘制两列不同的数据[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在尝试创建一个 ngFor 指令将数据放入两列 而不是像往常一样只放入一列 我什至按照我在那里看到的例子进行操作 但根本不起作
  • 发送 AT 命令到 Android 手机

    我想向 Android 手机发送 AT 命令 我知道SDK不支持这个 但有两种解决方案 更改内核代码并发布你的新Android 看来很难 环回开启USB 我认为蓝牙是一样的 关于第二种解决方案 当您将手机连接到PC时USB电缆 你会看到一个
  • 如何在 TWIG 中使用转储?

    我简单地添加模板 index html twig dump product 我有错误 The function dump does not exist in AcmeStoreBundle Default index html twig a
  • Instagram Oauth2 隐式身份验证重定向到页面不可用,如果您输入错误的密码

    我正在使用 oauth2 Instagram 隐式流程在 Instagram 中登录 我使用的基本网址是这样的 这个网址向我显示了 Instagram 登录页面 我输入了用户和密码 如果正确 API 会将我重定向到redirect uri
  • 如何使用pid获取进程状态?

    如果我知道一个进程的 pid 我如何使用 Python 判断该进程是否是僵尸进程 你可以使用status特征来自psutil https github com giampaolo psutil import psutil p psutil
  • 将 python (pandas) Dataframe 写入 SQL 数据库错误

    我正在尝试将 python 数据框放入 MS SQL DB 但收到以下错误 FUNCTION def put to server df df is a pandas data frame server KORNBSVM04 MSSQLSER
  • MathJax `\\` 换行符不渲染。简单地显示`\\`

    我使用 MathJax CDN 当我将其放入我的网页时 Say P k n is the probability of By definition 所有数学都正确呈现 但是 显示为 而不是换行符 并且没有换行符 它只是在同一条线上继续 所以
  • 使用node.js pm2在虚拟环境中运行python脚本

    我想参考一下这个问题 https stackoverflow com questions 32127834 how to run run python script like pm2 for nodejs因为我确信有人会将其标记为重复项 我
  • extjs 中的级联组合框

    我想在 extjs 中做级联组合框 我必须组合框 课程组合框 xtype combobox emptyText Course id combo course displayField name valueField id store cou
  • 该项目不是基于 Gradle 的项目。如何从根目录打开项目?

    我被这个问题困扰有一段时间了 绞尽脑汁 我用谷歌搜索了这个答案here https stackoverflow com questions 23752077 no gradle file shown while importing proj
  • java中2组最接近的和

    我在解决这个问题时遇到一些问题 给定一个数组ints 将输入分为 2 组 使其总和尽可能接近 2 组的长度必须相等 或者如果输入是奇数长度 则一组可以比另一组多 1 然后先打印较低的总和 然后打印较高的总和 前任 输入 gt 4 6 17
  • 从序列化的 post_meta (PHP) 中的数组中过滤一些值

    我在 WordPress 中设置了自定义帖子类型 艺术家 我有一个插件可以序列化来自艺术家的元信息 并且我需要按通道过滤此信息 channel s 6 trance 它也在序列化元 show data 中 a 1 s 32 57fba1b1
  • 在c#中比较RGB颜色

    我正在尝试找到一种方法来比较两种颜色以找出它们的相似程度 我似乎找不到有关该主题的任何资源 因此我希望在这里得到一些指示 理想情况下 我希望得到一个分数来表明它们有多相似 例如 0 到 100 其中 100 相等 0 完全不同 Thanks
  • BeautifulSoup:从锚标记中提取文本

    我想提取 来自以下 src 的文本image tag and 锚标记的文本位于div类数据 我成功地提取了 img src 但在从锚标记中提取文本时遇到了问题 a class title href http www amazon com N
  • 上传文件限制

    如何限制上传文件 例如 如果数据库已有 5 个条目 则不应采用第 6 个条目 并展示您只能拥有 5 个文件 我的代码