Php 将图像上载到我的服务器时出错

Php 将图像上载到我的服务器时出错,php,html,image-uploading,Php,Html,Image Uploading,我正在尝试将图像上载到我的服务器,如下所示: HTML代码 <html> <body> <form enctype="multipart/form-data" action="uploadimages.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="3000000" /> Send this file: <input name="userfile

我正在尝试将图像上载到我的服务器,如下所示:

HTML代码

<html>
<body>


<form enctype="multipart/form-data" action="uploadimages.php" method="POST">

<input type="hidden" name="MAX_FILE_SIZE" value="3000000" />

Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>

</body>
</html>

发送此文件:
以下是uploadimages.php代码: 我还尝试了:$uploaddir='/var/www/html/images/';也有同样的问题

<?php

$uploaddir = 'http://localhost/images/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

?>

但是,当我单击按钮发送文件时,会出现以下屏幕:

谢谢你的帮助

更新:

所以我改变了:

   <form enctype="multipart/form-data" action="http://localhost/uploadimages.php" method="POST">

$uploaddir = 'http://localhost/images/';

现在我得到了这个错误:


您正在使用服务器路径

$uploaddir = 'images/';
您应该使用相对/系统路径的位置

$uploaddir = '/var/rest_of_your_path/to/images/';
根据脚本的执行位置进行相应调整

它可能是
。/images/
,只有你知道

还要确保该文件夹可以写入

RTM on
move\u upload\u file()

并检查错误


另外,看到
value=“30000”
似乎有点低。请确保上载的文件大小不超过该值,并且不超过最大上载大小。

您使用的是服务器路径

$uploaddir = 'images/';
您应该使用相对/系统路径的位置

$uploaddir = '/var/rest_of_your_path/to/images/';
根据脚本的执行位置进行相应调整

它可能是
。/images/
,只有你知道

还要确保该文件夹可以写入

RTM on
move\u upload\u file()

并检查错误


另外,看到
value=“30000”
似乎有点低。请确保您上传的文件不超过该大小,并且不超过最大上传大小。

老实说,最大的问题似乎是您的代码甚至没有在web服务器上运行。您不能仅仅在web浏览器中打开一个PHP文件,然后期望它被神奇地解释。您需要安装Apache或Nginx并通过它访问您的文件。

老实说,最大的问题似乎是您的代码甚至没有在web服务器上运行。您不能仅仅在web浏览器中打开一个PHP文件,然后期望它被神奇地解释。您需要安装Apache或Nginx并通过它访问您的文件。

请参阅Chris的回答。他提出了一个正确的观点。在堆栈上查阅以下内容:我将size值更改为3000000,这是在HTML代码中调用action时php文件的路径,并且我尝试了$uploaddir='images/';'/var/rest_of_your_path/to/images/';,等等,现在我得到了一个不同的问题。请在最初的帖子中查看我的更新。Thanks@S.Martin您的操作应该是文件本身,而不是
action=”http://localhost/uploadimages.php“
并查看Chris的答案。@S.Martin另一件事是,您需要像这样访问HTML表单
http://localhost/form.html
(如果
.html
)如果两者都在同一个文件夹中,请使用
action=“uploadimages.php
,而不是可能的
c:///file.xxx
。同时确保安装了Web服务器/php。@Fred-ii再次感谢您。我按照指示操作了。但是,从本地主机运行了该文件并使用了:action=“uploadimages.php,我一直收到与更新相同的错误。Web服务器Apache已安装并正常工作。我确实有其他文件使用PHP运行并正常工作。请参阅Chris的回答。他提出了一个正确的观点。在堆栈上查阅以下内容:我将size值更改为3000000,这是在HTML代码中调用action时php文件的路径,并且我尝试了$uploaddir='images/';'/var/rest_of_your_path/to/images/';,等等,现在我得到了一个不同的问题。请在最初的帖子中查看我的更新。Thanks@S.Martin您的操作应该是文件本身,而不是
action=”http://localhost/uploadimages.php“
并查看Chris的答案。@S.Martin另一件事是,您需要像这样访问HTML表单
http://localhost/form.html
(如果
.html
)如果两者都在同一个文件夹中,请使用
action=“uploadimages.php
,而不是可能的
c:///file.xxx
。同时确保安装了Web服务器/php。@Fred-ii再次感谢您。我按照指示操作了。但是,从本地主机运行了该文件并使用了:action=“uploadimages.php,我一直收到与更新相同的错误。Web服务器Apache已安装并正常工作我确实有其他文件,我使用PHP运行并正常工作。注:Chris的回答是您应该接受的,因为这是这里的主要问题。另外,您还应该注意,您的代码容易受到远程代码执行的攻击(假设
images
文件夹实际位于文档根目录中)。注:Chris的答案是您应该接受的答案,因为这是这里的主要问题。另外,您还应该注意,您的代码容易受到远程代码执行的影响(假设
images
文件夹实际位于文档根目录中,看起来是这样的)。