文件上传中缺少文件类型

时间:2016-08-02 14:54:03

标签: php html csv

我有一个允许我上传CSV文件的页面。使用PHP我然后获取CSV文件的内容并将它们插入MySQL数据库。我现在一直没有遇到任何问题。然后今天,我尝试上传文件,但它没有用。问题是似乎没有与CSV文件关联的文件类型。例如,在良好的上传中,我吐出的调试消息如下所示:

You uploaded a file: buylist_235.csv 
file type: application/vnd.ms-excel 
file size: 10456 

File is valid, and was successfully uploaded. Here is some more debugging info:Array (
        [csv] => Array
            (
                [name] => buylist_235.csv
                [type] => application/vnd.ms-excel
                [tmp_name] => C:\xampp\tmp\php3C1E.tmp
                [error] => 0
                [size] => 10456
            )
)

但是,当我上传带有调试消息的问题文件时,我注意到文件类型和文件大小为空。

You uploaded a file: buylist_235_1.csv
file type: 
file size: 0

Possible file upload attack!
Here is some more debugging info:Array
(
    [csv] => Array
        (
            [name] => buylist_235_1.csv
            [type] => 
            [tmp_name] => 
            [error] => 2
            [size] => 0
        )

)

任何人都知道为什么文件类型为空?在Windows资源管理器中,如果我将鼠标悬停在其中任何一个文件上,则文件上的信息气球会显示"键入:Microsoft Excel逗号分隔值文件"。但是第二个文件有问题导致我的PHP呕吐并且无法识别文件类型。

1 个答案:

答案 0 :(得分:5)

文件类型不是问题(我不这么认为)。

您在第二个示例块中尝试上传文件时会看到error代码2,并且它未写入临时存储空间(tmp_name为空,{{1}是0)。

size

错误代码2为: UPLOAD_ERR_FORM_SIZE 上传的文件超出了HTML表单中指定的MAX_FILE_SIZE指令。

在表单HTML中调整此值。