PHP 文件上传 - 不检查文件大小
PHP file upload - Not checking the file size
我正在尝试从两天内制作文件上传表单,但似乎无法使其正常工作。我的代码正在检查文件的扩展名,但不检查文件大小。我用谷歌搜索,尝试了不同的方法,但无法让它工作。有人可以帮忙吗?
这是代码 -
<?php
if(isset($_POST['carsubmit']))
{
foreach($_POST as $key=>$val)
${$key}=addslashes($val);
$allowed_filetypes = array('.jpg','.gif','.bmp','.png');
$max_filesize = 2097152;
$upload_path = "resumes/";
$filename = $_FILES['attachresume']['name'];
$file_tmp =$_FILES['attachresume']['tmp_name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
$cardupcheck = "select * from `careers` where `email` = '$email'";
$cardupresult = mysql_query($cardupcheck);
if(mysql_num_rows($cardupresult)==1)
{
?>
<script type="text/javascript">
notification('You have already sent us!','error');
</script>
<?php
}
else
{
if(!in_array($ext,$allowed_filetypes)){
?>
<script type="text/javascript">
notification('Please check the file extension. Only jpg, png and gif are allowed!','error');
</script>
<?php
}
else if($file_tmp > $max_filesize){
?>
<script type="text/javascript">
notification('too large!','error');
</script>
<?php
}
else
{
move_uploaded_file($file_tmp,"resumes/".$filename);
$carquery = "INSERT INTO `careers` (`name`, `email`, `phone`, `aoi`, `qual`, `resume`) VALUES ('$name', '$email', '$phone', '$aoi', '$qual', '$filename')";
$carresult = mysql_query($carquery);
if($carresult)
{
?>
<script type="text/javascript">
notification('Thank you! We will get back to you soon!','success');
</script>
<?php
}
else
{
?>
<script type="text/javascript">
notification('There was an error. Please try after some time!','error');
</script>
<?php
}
}
}
}
?>
您正在将文件大小与文件名进行比较。通过$_FILES["attachresume"]["size"]
获取上传文件的大小。请改用此代码
<?php
if(isset($_POST['carsubmit']))
{
foreach($_POST as $key=>$val)
${$key}=addslashes($val);
$allowed_filetypes = array('.jpg','.gif','.bmp','.png');
$max_filesize = 2097152;
$upload_path = "resumes/";
$filename = $_FILES['attachresume']['name'];
$file_tmp =$_FILES['attachresume']['tmp_name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
$file_size = $_FILES["attachresume"]["size"]; // Here is the size of the uploaded file
$cardupcheck = "select * from `careers` where `email` = '$email'";
$cardupresult = mysql_query($cardupcheck);
if(mysql_num_rows($cardupresult)==1)
{
?>
<script type="text/javascript">
notification('You have already sent us!','error');
</script>
<?php
}
else
{
if(!in_array($ext,$allowed_filetypes)){
?>
<script type="text/javascript">
notification('Please check the file extension. Only jpg, png and gif are allowed!','error');
</script>
<?php
}
else if($file_size > $max_filesize){
?>
<script type="text/javascript">
notification('too large!','error');
</script>
<?php
}
else
{
move_uploaded_file($file_tmp,"resumes/".$filename);
$carquery = "INSERT INTO `careers` (`name`, `email`, `phone`, `aoi`, `qual`, `resume`) VALUES ('$name', '$email', '$phone', '$aoi', '$qual', '$filename')";
$carresult = mysql_query($carquery);
if($carresult)
{
?>
<script type="text/javascript">
notification('Thank you! We will get back to you soon!','success');
</script>
<?php
}
else
{
?>
<script type="text/javascript">
notification('There was an error. Please try after some time!','error');
</script>
<?php
}
}
}
}
?>
希望这对你有帮助
这个工作 -
else if(($_FILES['attachresume']['size'] >= $max_filesize) || ($_FILES["attachresume"]["size"] == 0))
相关文章:
- 用于检查文件扩展名不工作的Javascript If语句
- expressjs文件上传,检查是否确实有文件发送,指定最大文件大小&保留它的名字
- 上传前请检查文件大小
- 如何在javascript上传前检查文件大小
- XMLHttpRequest内容长度不等于文件的实际大小
- 如何在不使用 JavaScript 中的 activex 的情况下从客户端获取文件大小
- PHP 文件上传 - 不检查文件大小
- 当文件大小超过 1.5 MB 时,下载不会发生
- 检查HTML5视频的文件大小
- 在不使用文件属性的情况下在javascript中查找图像的大小,因为它在eclipse中不受支持
- 文件输入 :Chrome 在提交表单之前不会检查文件是否仍然存在
- 应用 javascript 来检查文件大小和扩展名
- 如何在plupload中获取队列的总文件大小而不是单个文件大小
- jQuery检查文件扩展名在IE中不起作用
- 我想获得文件大小,我正在使用html上传,但它不起作用
- 在不下载文件的情况下检查下载链接是否正常工作
- 在上传时检查文件大小
- 检查文件大小在上传和停止上传超过文件大小限制与javascript
- 上传文件前请检查文件大小
- 在步骤更改检查文件大小和文件类型jquery -步骤