【发布时间】:2012-11-16 17:16:50
【问题描述】:
我在创建的 PHP 文档上传表单上收到以下消息:
警告:fread():提供的参数不是有效的流资源
/home/admin/upload.php 第 129 行
警告:fread():提供的参数不是有效的流资源
/home/admin/upload.php 第 131 行
这是我的代码,第 129 和 131 行被注释:
<?
if(isset($_POST['upload']))
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, $fileSize); //Line 129
$content = addslashes($content);
fclose($fp); //Line 131
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$fileName = str_replace(' ','_',$fileName);
//MySQL Database Connect
include '../includes/dblogin.php';
$query = "INSERT INTO upload_min (name, size, type, content, types ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content', 'minutes')";
mysql_query($query) or die('Error, query failed');
echo "<p align='center'>File $fileName uploaded</p> <p align='center'><a href='index.php'>Go back to Admin</a></p>";
}
?>
我的用户只上传 MS Word 文档。所以我不知道是不是因为文件名可能太长了......
我有一个页面调用 dbase 并显示文件,并且有 .doc 和 .docx 文件....所以我认为文件扩展名不是问题...另外我刚刚上传了一个 .pdf 文件和它工作得很好......
有人吗?
【问题讨论】:
-
你的真实代码中没有这个
@符号吗? -
什么@符号?但不,我的代码中没有 @ 符号。但是,当我尝试从显示页面下载它们时,我确实发现上传 .docx 文档似乎会损坏它们.... docx 不是公认的文件扩展名吗?
-
可能是服务器不支持该文件扩展名,因此不是有效的流资源?
标签: php