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