使用PHP上传PDF文件的问题

时间:2012-02-15 12:45:02

标签: php pdf upload

我遇到了一个我的脚本的奇怪问题,我正在测试上传PDF文件。我可以成功上传一些pdf文件而不是其他文件,即使它们都是pdf并且有.pdf作为扩展名。在完成我的代码后,任何人都可以对此有所了解

HTML PART:

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">                            
    <input type="file"  name="upload" /><br />        
    <input type="submit" name="submit">  

PHP PART:

  if(isset($_POST['submit'])){
                $output_form = 0;                

                if (($_FILES["upload"]["type"] == "application/pdf")
                    && ($_FILES["upload"]["size"] < 80000)){
                        if (file_exists("upload/" . $_FILES["upload"]["name"]))
                          {
                            echo $_FILES["upload"]["name"] . " already exists. ";
                          }
                          else
                          {
                            move_uploaded_file($_FILES["upload"]["tmp_name"],
                            "upload/" . $_FILES["upload"]["name"]);
                            echo "Stored in: " . "upload/" . $_FILES["upload"]["name"];
                          }                          
                    }else{
                        echo 'Invalid File';
                    }                      
            }

对于某些文件,我获取输出,存储在输出中。对于其他人,我收到消息“无效文件”。

由于

2 个答案:

答案 0 :(得分:1)

上面的代码似乎有条件,如果filesize大于80000那么它应该抛出'无效文件'错误?失败的是什么尺寸?我愿意打赌,如果你评论出这个条件它会起作用

答案 1 :(得分:0)

有同样的问题。 发现文件类型也可以是application / x-octet-stream 因此,您需要在检查文件大小的同一语句中检查它。 像这样的东西: if(($ _FILES ['pdfUpload'] ['type'] ==“application / pdf”) || ($ _FILES ['pdfUpload'] ['type'] ==“application / x-octet-stream”) &安培;&安培; ($ _FILES ['pdfUpload'] ['size']&lt; 9000000))//大得多,我们在转移期间得到超时

我的2美分值