美文网首页PHP
一次mp3文件无法上传的体验

一次mp3文件无法上传的体验

作者: a81916596201 | 来源:发表于2016-12-16 09:57 被阅读49次

    最近发生上传的mp3文件无法发送到微信端的问题。

    打开服务器发现是服务器内存被占满了,删除了一部分mp3文件后,可还是不能发送。

    到apache的error.log中查看发现tmp_name为空。也就是php对上传的mp3文件无法产生临时文件。

    其中php对上传文件的处理:

    $_FILES这个变量用与上传的文件参数设置,是一个多维数组

    数组的用法就是 $_FILES['key']['key2'];

    $_FILES['upfile']是你表单上传的文件信息数组,upfile是文件上传字段,在上传时由服务器根据上传字段设定.

    $_FILES['upfile']包含了以下内容:

    $_FILES['upfile']['name'] 客户端文件的原名称.

    $_FILES['upfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif".

    $_FILES['upfile']['size'] 已上传文件的大小,单位为字节.

    $_FILES['upfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名.

    然后打印 $_FILES['upfile']['error'] 。显示为7.

    查看错误表:

    UPLOAD_ERR_OK

    其值为 0,没有错误发生,文件上传成功。

    UPLOAD_ERR_INI_SIZE

    其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。

    UPLOAD_ERR_FORM_SIZE

    其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

    UPLOAD_ERR_PARTIAL

    其值为 3,文件只有部分被上传。

    UPLOAD_ERR_NO_FILE

    其值为 4,没有文件被上传。

    UPLOAD_ERR_NO_TMP_DIR

    其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。

    UPLOAD_ERR_CANT_WRITE

    其值为 7,文件写入失败。PHP 5.1.0 引进。

    注意: 以上值在 PHP 4.3.0 之后变成了 PHP 常量。

    通过 UPLOAD_ERR_CANT_WRITE 关键词查找。有一句解释是在我编译代码时发现/tmp空间已满,数据无法写入。那默认的临时文件夹在哪呢。

    通过打印其他上传文件大小比较小的文件的临时文件夹路径发现在/tmp目录下。

    然后我们去/tmp目录下  df -h 发现 。/tmp在一个系统文件夹为overflow的名字之下,并且空间大小只有1M。

    对这种产生overflow临时系统文件夹,开启遮掩的服务的原因:意思表明,在系统空间不足时,紧急挂载/tmp目录到tmpfs文件系统。

    解决方法:重启服务器 reboot。

    相关文章

      网友评论

        本文标题:一次mp3文件无法上传的体验

        本文链接:https://www.haomeiwen.com/subject/mvhnmttx.html