上传 .txt 扩展名文件和 .doc 扩展名文件时出现错误
Posted
技术标签:
【中文标题】上传 .txt 扩展名文件和 .doc 扩展名文件时出现错误【英文标题】:I am getting error while upload the .txt extension file and .doc extension files 【发布时间】:2013-09-11 11:26:14 【问题描述】:我正在为教师制作一个网络表单,学生可以在那里提交作业,教师可以检查。但我收到错误,我无法上传 .txt 和 .doc 我的代码中有问题,这是我的努力。
error_reporting(E_ALL ^ E_NOTICE);
if ($_POST["upload"] == "1")
if ((($_FILES['file']['type'] == ".txt") || ($_FILES['file']['type'] == ".doc")) && ($_FILES['file']['size'] > "0"))
$id = 4881;
$name = "Naeem";
/*first image folder i i showed abd get file and move*/
$fileName = $_FILES["file"]["name"];
$fileName = preg_replace('#[^a-z.0-9]#i', '', $fileName);
$kaboom = explode(".", $fileName);
// Split file name into an array using the dot
$fileExt = end($kaboom);
// Now target the last array element to get the file extension
$fileName = $id . "(" . time() . rand() . ")." . $fileExt;
$to = "file/" . $fileName;
/*this step is used to move file from tmp to a folder*/
if (move_uploaded_file($_FILES['file']['tmp_name'], $to))
if ($query = mysql_query("INSERT INTO `file` (
`id` ,
`std_id` ,
`std_name` ,
`file_url`
)
VALUES (
NULL , '" . $id . "', '" . $name . "', '" . $to . "'
);"))
echo "Uploaded succesfully";
【问题讨论】:
让我看看你的代码 小心不要相信用户!这里你不验证接收到的文件的 mimetype,所以人们可以发送 php 代码!error_reporting(E_ALL ^ E_NOTICE);
应该在第一次出现的 php 打开标签之后。
【参考方案1】:
你的代码中有小错误,你放错了扩展名。
if((($_FILES['file']['type']=="text/plain") || ($_FILES['file']['type']=="application/msword"))&&($_FILES['file']['size']>"0"))
它不是 .txt 和 .doc,对于文本文件,它是 text/plain,对于 .doc,它是 application/msword。 我希望它会起作用。
【讨论】:
【参考方案2】:问题来了——
(($_FILES['file']['type']==".txt") || ($_FILES['file']['type']==".doc"))
文件扩展名和MIME类型不相同。
将.txt
替换为text/plain
并将.doc
替换为application/msword
。
【讨论】:
哦,我现在知道该怎么做了。以上是关于上传 .txt 扩展名文件和 .doc 扩展名文件时出现错误的主要内容,如果未能解决你的问题,请参考以下文章