在php中上传rtf文件

时间:2018-08-18 10:56:38

标签: php file-upload upload undefined rtf

我可以上传其他文件而没有错误。但是,每当我尝试在php中上传rtf文件时,它都会失败。我的代码如下:

if(isset($_POST['pid'])){           
    if($_FILES['uploadname']['name']==''){
     //Failed
    }else{
    //upload the file
    }
}

HTML表单:

<form method="post" enctype="multipart/form-data">
  <input type="file" accept=".csv,.doc,.pdf,.docx,.xls,.xlsx,.rtf,.txt, image/*" 
        name="uploadname" style="width:100%;">
   <input type="hidden" name="pid" value="<?php echo $id; ?>">
   <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max; ?>">
</form>

$ max = 62914560字节

我有未定义的索引上载名称

服务器日志:

  

PHP警告:24783980字节的POST内容长度超出了限制   0行上未知数中的8388608字节数

我上传了相同的文件(使用msword还原为doc格式),没有问题。但是当涉及到rtf时,它会失败。我可以上传其他文件,例如doc,docx,xl​​s,xlsx,pdf,txt和所有图像文件,而不会出现问题。 可能是什么问题呢。我正在使用php 7.1.19,谢谢

2 个答案:

答案 0 :(得分:0)

  1. 检查您的HTML表单是否具有enctype =“ multipart / form-data”。

  2. 如果您的文件输入标签名称是“ uploadname”。

答案 1 :(得分:0)

请参见the documentation

  

MAX_FILE_SIZE隐藏字段(以字节为单位)必须在文件输入字段之前,其值是PHP接受的最大文件大小。应该始终使用此表单元素,因为它为用户省去了等待传输大文件而又发现它太大而传输失败的麻烦。请记住:在浏览器端愚弄该设置非常容易,因此切勿依赖此功能阻止更大文件的访问。对于在应用程序客户端的用户来说,它只是一个便利功能。

您将该字段放在文件输入之后 ,因此它将被忽略。

  

但是,不能欺骗最大大小的PHP设置(在服务器端)。

…,看来您的服务器端配置还是设置为较低的值,因此您需要增加该值。