我正在使用带有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);
}
}
您的问题可以有多个答案,如下所示:
- 以DOT(.)开头的路径,例如"/opt/foldername/'
- 创建文件夹并授予其写入权限,以便在其中插入文件和数据
- 或者你可以在移动上传之前先检查目录是否存在,如果它不使用mkdir函数和chmod来授予写权限,然后使用上传函数。检查目录是否存在,而不是只将文件移动到那里,这总是一种更好的做法
move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/xampp/nf/uploads/'. $_FILES['file']['name'])
@Peter Darmis