Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中获取文件大小_Php_Mysql_File_Email - Fatal编程技术网

在php中获取文件大小

在php中获取文件大小,php,mysql,file,email,Php,Mysql,File,Email,我想在数据库中保存大小为的邮件附件 因此,我通过php以文本模式打开邮件,对于附件,我可以看到如下示例: Content-Type: image/jpeg; name="donoghte D2.jpg" Content-Disposition: attachment; filename="donoghte D2.jpg" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gvn2345e0 /9j/4AAQSkZJRgABAQEAYABg

我想在数据库中保存大小为的邮件附件

因此,我通过php以文本模式打开邮件,对于附件,我可以看到如下示例:

Content-Type: image/jpeg; name="donoghte D2.jpg"
Content-Disposition: attachment; filename="donoghte D2.jpg"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gvn2345e0
/9j/4AAQSkZJRgABAQEAYABgAAD/2WBDAAIBAQIBAQICAGICAWDAWMDAWYEBAMFBWYHBWCG BWCICQSJCAGKCACH0KCGCSMDAWMBWKODW0MDGSMDAZ/2WBDAQICAGMDAWYDAWYMCADAWM。。。 我将用这个代码显示它

<?php
header('Content-Type: image/jpeg');
echo (base64_decode($text));
?>

如果我想计算这个文件的大小,并将其存储在数据库中,最好的方法是什么

  • 我是否应该将其中的一部分(如通过邮件发送的内容)保存到数据库中
  • 如果是,该字段的数据类型应该是什么
  • 要计算它的大小,我应该解码它,然后得到它的
    strlen
    ?或者有没有更快的办法

  • 特别感谢您的关注

    要在PHP中获取字符串长度,您可以使用strlen()

    要在PHP中获取字符串长度,您可以使用strlen()

    您正在处理一个二进制对象,因此最好将其存储为相同的格式。我不确定您使用的是什么数据库,但MySQL具有用于此目的的二进制大对象

    您还可以将其写入文件系统。关于这两种技术在堆栈溢出方面的优点,有几十种很好的讨论,所以我在这里不赘述(例如:)


    我相信如果你有一个字符串中的解码数据,那么
    strlen
    会给出它的文件大小。您还可以在存储后查询数据库或文件系统以获取它。

    您在那里处理的是二进制对象,因此最好将其存储为相同的对象。我不确定您使用的是什么数据库,但MySQL具有用于此目的的二进制大对象

    您还可以将其写入文件系统。关于这两种技术在堆栈溢出方面的优点,有几十种很好的讨论,所以我在这里不赘述(例如:)


    我相信如果你有一个字符串中的解码数据,那么
    strlen
    会给出它的文件大小。您还可以在存储后查询数据库或文件系统以获取它。

    我将使用的格式使您能够以base64\u解码形式存储二进制数据。但是,如果您不关心存储容量,并且希望重新发送附件,则可以以DB支持的任何文本格式存储base64_编码的数据(以节省处理时间)。如果您关心数据库存储容量,我会将文件分开保存,只将文件名和路径存储到数据库中


    获取文件大小要获取图像长度,请对解码数据使用strlen。最好也使用
    内容长度
    标题。

    我将使用的格式使您能够以base64_解码形式存储二进制数据。但是,如果您不关心存储容量,并且希望重新发送附件,则可以以DB支持的任何文本格式存储base64_编码的数据(以节省处理时间)。如果您关心数据库存储容量,我会将文件分开保存,只将文件名和路径存储到数据库中

    获取文件大小要获取图像长度,请对解码数据使用strlen。最好也使用
    内容长度
    标题。

    根据,以下代码应给出多字节字符计为2个字符的字符串长度

    mb_strlen($utf8_string,'latin1')

    但是,我建议将文件保存在磁盘上,因为这通常在性能方面要高得多,nickf的帖子中列出了pro和con:

    根据,下面的代码应该为您提供多字节字符作为2个字符计算的字符串长度

    mb_strlen($utf8_string,'latin1')

    但是,我建议将文件保存在磁盘上,因为这通常在性能方面要高得多,nickf的帖子中列出了pro和con:

    <?php
    header('Content-Type: image/jpeg');
    echo (base64_decode($text));
    ?>