我正在尝试在我的本地服务器上使用php上传文件并将其保存在当前工作目录中。代码适用于任何大小小于2mb的文件类型但超过此大小会产生错误。我还修改了php.ini文件中的上传和发布大小,但它没有帮助。它给出了4个错误:
未定义的索引:第3行的C:\ wamp64 \ www \ project \ upload.php中的temp
file_get_contents(C:\ wamp64 \ www \ project \ project):无法打开流:C:\ wamp64 \ www \ project \ upload.php中没有此类文件或目录 在第5行
未定义的索引:第6行的C:\ wamp64 \ www \ project \ upload.php中的temp
- 醇>
未定义的索引:第18行的C:\ wamp64 \ www \ project \ upload.php中的temp
最后显示"抱歉,上传文件时出错。"。
我将上传的文件保存在upload.php所在的相同位置。
Upload.php:
<?php
$target_dir = getcwd();
$target_file = $target_dir .'\project'. basename($_FILES["temp"]["name"]);
$uploadOk = 1;
echo file_get_contents($target_file);
if ($_FILES["temp"]["size"] > 5000000000)
{
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
if ($uploadOk == 0)
{
echo "Sorry, your file was not uploaded.";
}
else
{
if (move_uploaded_file($_FILES["temp"]["tmp_name"], $target_file))
{
echo "The file ". basename( $_FILES["temp"]["name"]). " has been
uploaded.";
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
?>
答案 0 :(得分:0)
尝试这样做:(确保创建任何点)
1-确保表单中的method属性的值为POST
,enctype的值为multipart/form-data
。
2-此行echo file_get_contents($target_file);
不在此处
因为您是在上传文件之前放置的,建议您将其放在代码的末尾
3 - 如果您的代码
,请在开头添加此条件if($_POST["submit"]
{
//Your Code here;
}
并确保name
属性已添加到表单上的提交按钮
4-确保project
文件夹存在于包含upload.php
文件的同一文件夹中
5 -
非常重要:
确保在&amp;之前添加\\
在<{em> 项目之后$traget_file
变量成为
$target_file = $target_dir .'\\project\\'. basename($_FILES["temp"]["name"]);
完整代码与我合作
<?php
if($_POST["submit"])
{
$target_dir = getcwd();
$target_file = $target_dir .'\\project\\'. basename($_FILES["temp"]["name"]);
$uploadOk = 1;
echo file_get_contents($target_file);
if ($_FILES["temp"]["size"] > 5000000000)
{
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
if ($uploadOk == 0)
{
echo "Sorry, your file was not uploaded.";
}
else
{
if (move_uploaded_file($_FILES["temp"]["tmp_name"], $target_file))
{
echo "The file ". basename( $_FILES["temp"]["name"]). " has been
uploaded.";
}
else
{
echo "Sorry, there was an error uploading your file.";
}
}
}
?>
<html>
<head>
<title></title>
</head>
<body>
<form action="first.php" method='post' enctype="multipart/form-data">
<input type="file" name="temp" />
<input type="submit" name="submit" value="upload" />
</form>
</body>
</html>
我希望我能帮到你
由于
答案 1 :(得分:-1)
查看php.ini
文件中的这两个参数,WAMPServer配置了
upload_max_filesize = 2M
post_max_size = 8M
将upload_max_filesize
增加到要允许卸载的最大文件的大一点。如果您打算一次上传多个文件,可以大得多。
然后将post_max_size
增加到您设置upload_max_filesize
的数字LARGER,例如
upload_max_filesize = 80M
post_max_size = 85M
post_max_size
必须大于upload_max_filesize
,因为文件在POST缓冲区以及表单中可能存在的所有其他字段中传输
注意使用wampmanager图标来编辑
php.ini
,这样可以确保您编辑正确的php.ini
有2个。
wampmanager -> php -> php.ini
还记得在编辑并保存
后重启Apachephp.ini
wampmanager -> Apache -> Service administration 'wampapache' -> Restart Service