在OpenShift上使用php检索原始上传的文件名

时间:2014-10-14 14:32:27

标签: php openshift

我想检查上传到我的OpenShift应用程序的文件是否有文本扩展名(.txt或.tab)。根据一些建议given here我编写了以下代码,并添加了回声来帮助调试:

$AllowedExts =  array('txt','tab');
 echo "AllowedExts: " . $AllowedExts[0] . " and " . $AllowedExts[1] . "<br>";
$ThisPath = $_FILES['uploadedfile']['tmp_name'];
 echo "ThisPath: " . $ThisPath . "<br>";
$ThisExt = pathinfo($ThisPath, PATHINFO_EXTENSION);
 echo "ThisExt: " . $ThisExt . "<br>";
if(!in_array($ThisExt,$AllowedExts) ) {
    $error = 'Uploaded file must end in .txt or .tab';
}
 echo "error echo: " . $error . "<br>";

在上传任何文件时,回显的响应为:

  

AllowedExts:txt和tab

     

ThisPath:/ var / lib / openshift / ************ / php / tmp / phpSmk2Ew

     

ThisExt:

     

错误回显:上传的文件必须以.txt或.tab

结尾

这是否意味着OpenShift在上传时重命名文件?如何获取原始文件名然后检查其后缀?更一般地说,有更好的方法来检查文件类型吗?

1 个答案:

答案 0 :(得分:0)

$_FILES['uploadedfile']['tmp_name']包含服务器上的临时文件的名称(可以使用move_uploaded_file()移动)。如果要在客户端计算机上检查上载文件的原始名称,请使用$_FILES['uploadedfile']['name']

这不是Open Shift问题,它是PHP的标准方式。

有关详细信息,请参阅http://php.net/manual/en/features.file-upload.post-method.php

有关检测文件类型的其他方法,请参阅http://php.net/manual/en/ref.fileinfo.php