使用php上传文件时显示警告消息


warning message shows during the file upload using php

我正在使用带有XAMPP的ubuntu操作系统。在这里,我创建了两个文件uploader.php和phpEx6.php当我尝试上传文件时,它会显示警告消息。我是php.pls帮助解决问题的新手。。

phpEx6.php

<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<h3>File Upload:</h3>
Select a file to upload: <br />
<form action="uploader.php" method="post" enctype="multipart/form-   data">
<input type="file" name="file" size="50" />
<br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>

上传器.php

<?php
if( $_FILES['file']['name'] != "" )
{
   error_reporting(E_ALL);
move_uploaded_file($_FILES['file']['tmp_name'],     $_SERVER['DOCUMENT_ROOT'] . '/opt/lampp/htdocs/xampp/nf/uploads/' $_FILES['file']['name'])
or die("Couldn't copy the file.");
}
else
{
    die("No file specified!");
}
?>
<html>
<head>
<title>Uploading Complete</title>
</head>
<body>enter code here
<h2>Uploaded File Info:</h2>
<ul>
<li>Sent file: <?php echo $_FILES['file']['name'];  ?>
<li>File size: <?php echo $_FILES['file']['size'];  ?> bytes
<li>File type: <?php echo $_FILES['file']['type'];  ?>
</ul>
</body>
</html>

输出

警告:move_uploaded_file(/opt/lampp/htdocs/opt/lampp/htdocs/examplep/nf/uploads/sam.txt):无法打开流:在第5行的/opt/lamp/htdocs/samplep/nf/upliloader.php中没有这样的文件或目录

警告:move_uploaded_file():无法将第5行中的/opt/lamp/temp/php1BAGC1移动到/opt/lampp/htdocs/opt/lampp/htdocs/examplep/nf/uploads/sam.txt

尝试更改此

move_uploaded_file($_FILES['file']['tmp_name'],     $_SERVER['DOCUMENT_ROOT'] . '/opt/lampp/htdocs/xampp/nf/uploads/'. $_FILES['file']['name'])

用这个

move_uploaded_file($_FILES['file']['tmp_name'],     $_SERVER['DOCUMENT_ROOT'] . '/xampp/nf/uploads/'. $_FILES['file']['name'])

甚至这个

move_uploaded_file($_FILES['file']['tmp_name'],   '/opt/lampp/htdocs/xampp/nf/uploads/'. $_FILES['file']['name'])

错误是关于,没有创建要将文件移动到的文件夹。。创建文件夹,然后尝试,或者检查文件夹是否具有将文件上载到其中所需的所有权限。。以下是上传文件的示例代码。。

if(isset($_POST['Submit']))
    {
        $tmp_name = $_FILES['Pic']['tmp_name'];
        $name = $_FILES['Pic']['name']; 
        if(is_uploaded_file($tmp_name))
        {
            $org_name = time()."_".$name;
            $dest = "uploads/$org_name";
            move_uploaded_file($tmp_name, $dest);
        }
    }

您的问题可以有多个答案,如下所示:

  1. 以DOT(.)开头的路径,例如"/opt/foldername/'
  2. 创建文件夹并授予其写入权限,以便在其中插入文件和数据
  3. 或者你可以在移动上传之前先检查目录是否存在,如果它不使用mkdir函数和chmod来授予写权限,然后使用上传函数。检查目录是否存在,而不是只将文件移动到那里,这总是一种更好的做法
move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/xampp/nf/uploads/'. $_FILES['file']['name'])

@Peter Darmis