在php中获取文件大小
我想在数据库中保存大小为的邮件附件 因此,我通过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
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));
?>