Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP文件数据库上传_Php - Fatal编程技术网

PHP文件数据库上传

PHP文件数据库上传,php,Php,一般来说,我对php编程和web没有太多经验,所以我从教程中构建了这段代码,它应该做的是在数据库中存储数据,但它似乎完全忽略了任何语句(例如,选择不正确的数据格式时出现异常),它在点击提交按钮后会刷新页面,有没有办法解决这个问题 <div id='box'> <form method='post' enctype='multipart/form-data'> <?php if(isset($_FILES['video'])){ $name

一般来说,我对php编程和web没有太多经验,所以我从教程中构建了这段代码,它应该做的是在数据库中存储数据,但它似乎完全忽略了任何语句(例如,选择不正确的数据格式时出现异常),它在点击提交按钮后会刷新页面,有没有办法解决这个问题

<div id='box'>
<form method='post' enctype='multipart/form-data'>
<?php
    if(isset($_FILES['video'])){

        $name = $_FILES['video']['name'];
        $type = explode('.', $name);
        $type = end($type);
        $size = $_FILES['video']['size'];
        $randon_name = rand();
        $tmp = $_FILES['video']['tmp_name'];

     if($type != 'mp4' && $type != 'MP4' && $type != 'flv' && $type !='avi'){
            $message = "bad format";

        }   
           else{
mysql_query("INSERT INTO videos VALUES('', '$name', 'videos/$randon_name.$type')");
            $message = "successful upload";
        }
        echo $message;
    }
    ?>
    Choose file : <br/>
    <input type='file' name='video'/>
    <br/><br/>
    <input type='submit' value='Upload'/>

    </form>
    </div>


您选择的文件似乎大于上载的最大文件大小或发布的最大文件大小。 如果是这种情况,则
$\u FILES
变量为空,您什么也看不到。如果选择较小的文件,则在脚本顶部执行
print\r($\u FILES)
时应该会看到一些内容

如果您在apache中以模块形式运行php,可以尝试添加一个.htaccess,如下所示:

php_value upload_max_filesize 200M
php_value post_max_size 200M

否则,您需要编辑php.ini。据我所知,您无法通过
ini\u set()

设置这些php.ini值,我认为这不是正确的isset($\u FILES['video']作为isset进行设置($\u FILES['video']['name'])@M.chaudhry
isset()
是一个函数。括号是必需的。@RUJordan sry编辑:)
$\u FILES['video'['name']
来自客户端,因此,您的查询可以进行注入。查看PDO。如果添加
print\r($\u文件),您会看到什么在PHP脚本的最顶端?我复制了您的代码并添加了一个
print\r($\u文件)位于脚本顶部。当我上传大约1MB的jpeg时,我可以看到“坏格式”输出和我的
print\r
打印的文件详细信息。如果我选择25MB的.wmv视频,
print\r
显示一个空数组。
if(isset($\u FILES['video'))
失败,我看不到其他内容。添加.htaccess文件后,25MB.wmv的工作方式与1MB.jpg类似,因为如果您是这样做的,那么我看不到您看到的内容