php文件上传类型

时间:2012-09-25 09:37:17

标签: php file-upload

我尝试从HTML表单上传zip文件和csv文件。

在PHP上,当我在symfony中打印$ _FILES(实际上是$ request-> getFiles())时,我得到了以下内容。

Array
(
    [zipfile] => Array
        (
            [name] => tempfiles.zip
            [type] => application/octet-stream
            [tmp_name] => C:\wamp\tmp\php5D42.tmp
            [error] => 0
            [size] => 850953
        )
    [csvfile] => Array
        (
            [name] => test.csv
            [type] => application/vnd.ms-excel
            [tmp_name] => C:\wamp\tmp\php5D52.tmp
            [error] => 0
            [size] => 312
        )
)

我想知道typetmp_name。我需要根据类型做出一些决定。对现有类型做出决定是否安全?我会在Linux服务器上获得类似文件的相同结果吗?

再次tmp_name.tmp分机。它在windows / linux上是否一致?如果没有,我在Windows上编写的代码(使用type决定)是否可以在Linux上运行而没有任何问题?

2 个答案:

答案 0 :(得分:3)

使用此type可能很危险因为用户可以更改文件类型并可以上传php脚本。

您应该首先验证type,就像get_image_size()一样验证图片文件。我不知道.zip文件

答案 1 :(得分:2)

信任type表单$_FILES是不安全的,您需要验证服务器端的文件类型。

对于.tmp扩展,在Windows或Linux上都可以。