我正在对php中上传的文件进行验证。我想验证一个文件
CCD_ 1。
else: proceed to upload
我现在要做的是,如果文件大小大于或小于3MB,它会显示错误。以下是代码:
/*
* other validation of post here
*
*/
if (isset($_FILES['uploaded'])) {
$filesize = $_FILES['uploaded']['size'];
if ($filesize > 3145728) {
$msgError[] = 'File can not be more than 3MB';
}
for ($i=0; $i < count($_FILES['uploaded']['name']); $i++) {
$tmpFilePath = $_FILES['uploaded']['tmp_name'][$i];
if (!empty($tmpFilePath)) {
$shortname = $_FILES['uploaded']['name'][$i];
$filePath = "uploads/" . date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][$i];
if (!$msgError && move_uploaded_file($tmpFilePath, $filePath)) {
$sql = " UPDATE purchase SET quotation_1='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][0]."', quotation_2='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][1]."', quotation_3='".date('d-m-Y-H-i-s').'-'.$_FILES['uploaded']['name'][2]."'
WHERE pr_id='$pr_id' ";
$result = mysqli_query($conn, $sql);
if(mysqli_query($conn, $sql)){
mysqli_close($conn);
$pr_idEnc = urlencode(encryptor('encrypt', $pr_id));
header("Location: ".BASE_PATH."update-purchase.php?success&pr_id=".$pr_idEnc."");
} else {
mysqli_close($conn);
echo "Error updating record: " . mysqli_error($conn);
}
} else {
$msgErrorString = implode(",",$msgError);
$pr_idEnc = urlencode(encryptor('encrypt', $pr_id));
mysqli_close($conn);
header("Location: ".BASE_PATH."update-purchase.php?pr_id=".$pr_idEnc."&msgError=".$msgErrorString."");
}
}
}
}
我该如何解决这个问题?
为什么不更改php.ini
文件中的upload_max_filesize
和upload_max_filesize
设置?
upload_max_filesize = 3 M
post_max_size = 3 M
post_max_size
设置允许的发布数据的最大大小。此设置还会影响文件上载。若要上载大文件,此值必须大于upload_max_filesize。一般来说,memory_limit应该更大大于post_max_size。使用整数时,该值以字节。
上传_max_filesize
上载文件的最大大小。使用整数时值以字节为单位。