Php 上载文件,但目录不存在';不存在

Php 上载文件,但目录不存在';不存在,php,upload,directory,temporary,Php,Upload,Directory,Temporary,我是一个新手程序员,正在努力自学PHP。我正在尝试上传一个文件,但我遇到了一些问题。文件似乎已成功上载,但其临时位置是服务器上不存在的位置 下面是我用来上传文件的代码: <?php if (isset($_POST['submit'])) { $imgfile = $_FILES['imgfile']['name']; $temp = $_FILES['imgfile']['tmp_name']; $type = $_FILES['imgfile']['type']; if

我是一个新手程序员,正在努力自学PHP。我正在尝试上传一个文件,但我遇到了一些问题。文件似乎已成功上载,但其临时位置是服务器上不存在的位置

下面是我用来上传文件的代码:

<?php       
if (isset($_POST['submit']))
{
$imgfile = $_FILES['imgfile']['name'];
$temp = $_FILES['imgfile']['tmp_name'];
$type = $_FILES['imgfile']['type'];

if (!empty($imgfile))
{
        $dbc = mysqli_connect('DB_HOST','DB_USER','DB_PASSWORD','DB_NAME')
    or die('Error connecting to database');
    $query = "INSERT INTO photos VALUES(0, '$imgfile',NOW(), '$temp', '$type')";

        mysqli_query($dbc,$query);

        //clear the form                    
    $imgfile = "";

        mysqli_close($dbc);
    }
}
?>
<form enctype = "multipart/form-data" method = "POST" action = "<?php
echo $_SERVER['PHP_SELF']; ?>">

<label for = "imgfile">Filename:</label>
<input type = "file" id = "imgfile" name = "imgfile"  />
<br />
<input type = "submit" value = "upload" name = "submit" id = "submit" /> 
</form>

您需要将其从临时存储移动到您的目录中

if (is_uploaded_file( $_FILES['imgfile']['tmp_name'] )) {
    move_uploaded_file( $_FILES['imgfile']['tmp_name'], '/path/filename.jpg' );
}

您需要将它从临时存储移动到您的目录

if (is_uploaded_file( $_FILES['imgfile']['tmp_name'] )) {
    move_uploaded_file( $_FILES['imgfile']['tmp_name'], '/path/filename.jpg' );
}

您必须保存图像,以便以后能够访问它。为此,请添加以下代码:

$path = "uploads/images/";
if (is_uploaded_file($_FILES['imgfile']['tmp_name'])) {
    move_uploaded_file($_FILES["imgfile"]["tmp_name"], $path . $_FILES["imgfile"]["name"]);
}
在以下几行之后:

if (!empty($imgfile))
{

请注意,
$path
必须是可写的。现在文件名变成了
$path.$\u FILES[“imgfile”][“name”]
。还要确保执行一些安全检查,您的代码是可访问的。

您必须保存映像,以便以后能够访问它。为此,请添加以下代码:

$path = "uploads/images/";
if (is_uploaded_file($_FILES['imgfile']['tmp_name'])) {
    move_uploaded_file($_FILES["imgfile"]["tmp_name"], $path . $_FILES["imgfile"]["name"]);
}
在以下几行之后:

if (!empty($imgfile))
{

请注意,
$path
必须是可写的。现在文件名变成了
$path.$\u FILES[“imgfile”][“name”]
。另外,请确保执行一些安全检查,您的代码是可访问的。

尝试使用此方法控制文件的存储位置。

尝试使用此方法控制文件的存储位置。

它不是一个文件夹,它是一个文件名,它是由php随机分配的。那么/phpblahblah是我上传文件的文件名吗?上传后我还能在临时文件夹中看到这些文件吗?是的,但它们是非常临时的。它不是一个文件夹,而是一个文件名,是php随机分配的。所以/phpblahblah是我上传文件的文件名?上传后我还能在临时文件夹中看到这些文件吗?是的,但它们是非常临时的。嘿,谢谢你的快速回复!我有三个后续问题要问你。1) 上传后,我是否可以在默认的临时文件夹中看到图片?2)一旦我做了移动,我应该能够看到我移动到右侧的文件夹中的图片?然后3)当我设置要将图片移动到的文件夹的路径时,我只需要从php文件所在的目录开始设置它,对吗?所以,我的php文件当前位于一个名为html的文件夹中,我希望将其移动到图像中,所以我只使用$path=“/Images”;。。是这样吗?谢谢1) 第2)是的;3) 如果您的php文件位于/www/html下,并且path=“images/”(开头没有斜杠),那么您的图像将位于/www/html/imagesey下,感谢您的快速响应!我有三个后续问题要问你。1) 上传后,我是否可以在默认的临时文件夹中看到图片?2)一旦我做了移动,我应该能够看到我移动到右侧的文件夹中的图片?然后3)当我设置要将图片移动到的文件夹的路径时,我只需要从php文件所在的目录开始设置它,对吗?所以,我的php文件当前位于一个名为html的文件夹中,我希望将其移动到图像中,所以我只使用$path=“/Images”;。。是这样吗?谢谢1) 第2)是的;3) 如果您的php文件位于/www/html下,并且路径=“images/”(开头没有斜杠),那么您的图像将位于/www/html/images下