こんにちは、ファイルをアップロードしようとしています。制限を1 MBに設定しています。 ファイルサイズが1 MBを超えると、ファイルはフォルダ内では移動せず、mysqlデータベース内で更新されます。PHPファイルサイズのアップロード条件が正常に動作しない
<?php
$fileName = $_FILES['myfile']['name'];
$fileNameTmp = $_FILES['myfile']['tmp_name'];
$fileSize = $_FILES["myfile"]["size"];
$fileExtension = explode('.',$fileName);
$fileExtension = strtolower(end($fileExtension));
$maxsize = 1000000;
$fileUniqueName = uniqid().'.'.$fileExtension;
$store = 'uploads/'.$fileUniqueName;
if($fileSize>$maxsize)
{
echo 'size exceed';
}
else
{
move_uploaded_file($fileNameTmp,$store);
$query = mysql_query("update users set image = '$fileUniqueName' where id = '$_SESSION[id]'");
}
?>
予想される結果:サイズが1 MBを超える場合、ファイル名はデータベースで更新しないでください。
'mysql_ *'関数の使用を中止してください。それらはv5.5(2013年6月)から廃止され、v7.0(2015年12月)以降削除されました。代わりに[** mysqli _ ***](https://secure.php.net/manual/en/book.mysqli.php)または[** PDO **](https://secure.php.net/** ** prepared statements **](https://secure.php.net/manual/en/pdo.prepare.php)と[**バインドされたパラメータ** ](https://secure.php.net/manual/en/pdostatement.bindparam.php)。 –
あなたのコードは[** SQLインジェクション攻撃**](https://en.wikipedia.org/wiki/SQL_injection)に脆弱である可能性があります。 [** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https://secure.php.net/)を使用してください。 manual/en/pdo.prepared-statements.php)は、[** this post **](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql - インジェクション - イン - php)。 –
'var_dump($ maxsize、$ fileSize);'そして期待どおりの値であるかどうか確認してください。 – Qirel