2011-02-17 121 views
1

我正在做一个文件上传在PHP中。 .txt是否为上传过滤器的有效扩展名?如果有,我可以看到一个例子吗?.txt PHP文件上传文件扩展名为?

编辑:对不起,我不太清楚。我的意思是我只希望用户能够上传.txt文件,这就是全部。

+1

我不明白你的意思。你能澄清吗? – 2011-02-17 00:25:11

回答

2

任何有效,直到你使它无效上传文件。与此代码播放,你会看到什么特性使PHP的文件处理刻度:

upload.html

<html> 
    <head> 
    <title>Upload a File</title> 
    </head> 

    <body> 
    <form action="upload_file.php" method="post" enctype="multipart/form-data"> 
     <label for="file">Filename:</label> 
     <input type="file" name="file" id="file" /> 

     <br /> 

     <input type="submit" name="submit" value="Submit" /> 
    </form> 
    </body> 
</html> 

upload_file.php

<?php 
if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Error: " . $_FILES["file"]["error"] . "<br />"; 
    } else { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
    echo "Stored in: " . $_FILES["file"]["tmp_name"]; 
    } 
?> 

我不确定你在问什么,所以稍微澄清一下会很好。


我不PHP(Python的FTW)工作,但如果你想确保只有文本文件打通,它们进行过滤:

if ($_FILE['file']['type'] == 'text/plain' && strrpos($_FILE['file']['name'], '.txt') === strlen($_FILE['file']['name']) - strlen('.txt')) 
{ 
    echo 'Your file is legit. Continue...' 
} else { 
    echo 'You can\'t upload that!' 
} 

我不知道,如果text/plain会造成假阴性,所以如果是这样,请将其删除。

+0

对不起,我编辑我的问题,如果它现在有任何意义。 – 2011-02-17 03:28:04

0

默认情况下,除非您使用某种第三方库,否则任何文件都可以上传。你用它做的,解析它,是另一回事:)

0

使用表单提供的文件名,您必须提取文件扩展名。然后,您将文件扩展名与扩展名列表(您允许)进行比较,如果它们不匹配任何扩展名,则不要处理该文件。

先提取扩展由

$ext = substr(strrchr($file_name,'.'),1); 

,并使用一个case语句或比较的结果(因为你已经允许1扩展名),只是如果

if ($ext == 'txt') // upload the file