用php上传rtf文件

用php上传rtf文件,php,file-upload,upload,undefined,rtf,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">

我可以上传其他文件没有错误。但每当我尝试用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警告:POST内容长度24783980字节超出限制 第0行中未知的8388608字节数

我上传了同样的文件重新保存为文件格式使用msword没有问题。但当涉及到rtf时,它失败了。我可以上传其他文件,如doc,docx,xls,xlsx,pdf,txt和所有图像文件没有问题。 有什么问题吗。我正在使用PHP7.1.19,谢谢

检查HTML表单是否包含enctype=multipart/form数据

如果文件输入标记名为uploadname

见:

最大文件大小隐藏字段(以字节为单位)必须位于文件输入字段之前,其值是PHP接受的最大文件大小。应始终使用此表单元素,因为它避免了用户在等待传输大文件时发现文件太大且传输失败的麻烦。请记住:在浏览器端愚弄此设置非常容易,因此永远不要依赖此功能阻止较大大小的文件。对于应用程序客户端的用户来说,它只是一个方便的特性

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

然而,服务器端的最大大小的PHP设置不能被愚弄


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

它到底是如何失败的?屏幕上或服务器错误日志中是否有任何错误消息?你的表格是什么样子的?请同时提供你用来提交文件的html表格。@Capricorn,我用html表格更新了我的问题。我认为我的问题不值得投否决票。我还提供了一个错误,即未定义索引上载名。请解释为什么要进行向下投票?我可以改进我的问题,我不能代表那些对你的问题投了否决票的人说话,但对我来说,你要做的是php中一项非常常见的任务。因此,这里有大量在线教程和相关问题,解决了几乎所有可能出现的问题。正如《提问指南》所建议的那样,在提出新问题之前,应该进行广泛的研究。这将导致你的问题得到更快的解决,并且不再有其他常见问题。是的,就是这样。我可以上传其他文件,如doc,docx,xls,xlsx,pdf,txt和所有图像文件没有问题。谢谢你的回答。我更新了我的最大文件大小。我的rtf文件是23MB。我还增加了php.ini中的上传设置,但仍然会出现相同的错误。未定义索引