在php上传rtf文件

问题描述 投票:-2回答:2

我可以无误地上传其他文件。但每当我尝试在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字节

我得到了未定义的索引uploadname

服务器日志:

PHP警告:POST Content-Length为24783980字节超过了第0行的Unknown中的8388608字节限制

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

php file-upload upload undefined rtf
2个回答
0
投票

the documentation

MAX_FILE_SIZE隐藏字段(以字节为单位)必须位于文件输入字段之前,其值是PHP接受的最大文件大小。应始终使用此表单元素,因为它可以节省用户等待传输大文件的麻烦,只是发现它太大而传输失败。请记住:在浏览器端愚弄此设置非常简单,因此不要依赖此功能阻止更大尺寸的文件。它仅仅是应用程序客户端用户的便利功能。

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

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

...看起来您的服务器端配置无论如何都设置为较低的值,因此您需要增加它。


0
投票
  1. 检查您的HTML表单是否包含enctype =“multipart / form-data”。
  2. 如果您的文件输入标记名称是“uploadname”。
© www.soinside.com 2019 - 2024. All rights reserved.