我正在做一個文件上傳在PHP中。 .txt是否爲上傳過濾器的有效擴展名?如果有,我可以看到一個例子嗎?.txt PHP文件上傳文件擴展名爲?
編輯:對不起,我不太清楚。我的意思是我只希望用戶能夠上傳.txt文件,這就是全部。
我正在做一個文件上傳在PHP中。 .txt是否爲上傳過濾器的有效擴展名?如果有,我可以看到一個例子嗎?.txt PHP文件上傳文件擴展名爲?
編輯:對不起,我不太清楚。我的意思是我只希望用戶能夠上傳.txt文件,這就是全部。
任何有效,直到你使它無效上傳文件。與此代碼播放,你會看到什麼特性使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
會造成假陰性,所以如果是這樣,請將其刪除。
對不起,我編輯我的問題,如果它現在有任何意義。 – 2011-02-17 03:28:04
默認情況下,除非您使用某種第三方庫,否則任何文件都可以上傳。你用它做的,解析它,是另一回事:)
使用表單提供的文件名,您必須提取文件擴展名。然後,您將文件擴展名與擴展名列表(您允許)進行比較,如果它們不匹配任何擴展名,則不要處理該文件。
先提取擴展由
$ext = substr(strrchr($file_name,'.'),1);
,並使用一個case語句或比較的結果(因爲你已經允許1擴展名),只是如果
if ($ext == 'txt') // upload the file
我不明白你的意思。你能澄清嗎? – 2011-02-17 00:25:11