我尝试从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
)
)
我想知道type
和tmp_name
。我需要根据类型做出一些决定。对现有类型做出决定是否安全?我会在Linux服务器上获得类似文件的相同结果吗?
再次tmp_name
有.tmp
分机。它在windows / linux上是否一致?如果没有,我在Windows上编写的代码(使用type
决定)是否可以在Linux上运行而没有任何问题?
答案 0 :(得分:3)
使用此type
可能很危险因为用户可以更改文件类型并可以上传php脚本。
您应该首先验证type
,就像get_image_size()一样验证图片文件。我不知道.zip文件
答案 1 :(得分:2)
信任type
表单$_FILES
是不安全的,您需要验证服务器端的文件类型。
对于.tmp
扩展,在Windows或Linux上都可以。