首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.txt文件上传文本扩展?

.txt文件上传文本扩展?
EN

Stack Overflow用户
提问于 2011-02-17 08:23:43
回答 3查看 7.4K关注 0票数 1

我正在用php做一个文件上传。.txt是上传过滤器的有效扩展吗?如果是这样,我可以看一个例子吗?

编辑:对不起,我说得不太清楚。我的意思是,我只希望用户能够上传.txt文件,仅此而已。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-17 08:31:30

任何东西都是有效的,除非你在上传文件时将其设置为无效。使用这段代码,您将看到是什么属性使PHP的文件处理正常进行:

upload.html

代码语言:javascript
复制
<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

代码语言:javascript
复制
<?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),但如果您想确保只通过文本文件,请对其进行过滤:

代码语言:javascript
复制
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是否会导致漏报,所以如果会,就删除它。

票数 2
EN

Stack Overflow用户

发布于 2011-02-17 08:27:16

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

票数 0
EN

Stack Overflow用户

发布于 2011-02-17 16:45:56

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

首先,通过以下方式提取扩展

代码语言:javascript
复制
$ext = substr(strrchr($file_name,'.'),1);

并使用case语句或(因为您有1个允许的扩展)来比较结果

代码语言:javascript
复制
if ($ext == 'txt') // upload the file
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5023824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档