我想知道是否有人可以帮助我。
我必须承认我编写PHP相对较新,所以请耐心等待。
通过我在互联网上阅读的文章以及本网站上一个@Marcio的一些一流资料,我整理了一个允许用户将图像文件保存到mySQL数据库的脚本。
我现在已经通过限制可以上传的文件的大小来进一步了,但是我想添加一条警告消息,说明为什么文件无法上传,即因为它的大小大于限制集。
我已经尝试过这个,如下面的代码所示。但不幸的是,我收到一条错误消息,指出存在意外的'>'我知道这与我添加的行有关,但不知道如何以另一种方式编码。
修订了减少代码
<?php
// This function makes usage of
// $_GET, $_POST, etc... variables
// completly safe in SQL queries
function sql_safe($s)
{
if (get_magic_quotes_gpc())
$s = stripslashes($s);
return mysql_real_escape_string($s);
}
// If user pressed submit in one of the forms
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!isset($_POST["action"]))
{
// cleaning title field
$title = trim(sql_safe($_POST['title']));
if ($title == '') // if title is not set
$title = '(No title provided';// use (empty title) string
if (isset($_FILES['photo']))
{
@list(, , $imtype, ) = getimagesize($_FILES['photo']['tmp_name']);
// Get image type.
// We use @ to omit errors
if ($imtype == 3) // cheking image type
$ext="png"; // to use it later in HTTP headers
elseif ($imtype == 2)
$ext="jpeg";
elseif ($imtype == 1)
$ext="gif";
else
$msg = 'Error: unknown file format';
if($_FILES["fileupload"]["size"]/1024000 >= 10) // 10mb
{
$fileErrMsg = "<br />Your uploaded file size:<strong>[ ". $_FILES["fileupload"]["size"]/1024000 . " MB]</strong> is more than allowed 10MB Size.<br />";
}
if (!isset($msg)) // If there was no error
{
$data = file_get_contents($_FILES['photo']['tmp_name']);
$data = mysql_real_escape_string($data);
// Preparing data to be used in MySQL query
mysql_query("INSERT INTO {$table}
SET ext='$ext', title='$title',
data='$data'");
$msg = 'Success: Image Uploaded';
}
}
我只是想知道是否有人可以看看这个,让我知道我做错了什么。
非常感谢和亲切的问候
答案 0 :(得分:0)
getfilesize()
以像素为单位返回图像尺寸,而不是文件大小。你需要一些基本的东西:
if (filesize($_FILES['tmp_name']) >= 100000)
答案 1 :(得分:0)
您可以使用此
if($_FILES["fileupload"]["size"]/1024000 >= 10) // 10mb
{
$fileErrMsg = "<br />Your uploaded file size:<strong>[ ". $_FILES["fileupload"]["size"]/1024000 . " MB]</strong> is more than allowed 10MB Size.<br />";
}