使用php上传文件时显示警告消息
我正在使用带有XAMPP的ubuntu操作系统。在这里,我创建了两个文件uploader.php和phpEx6.php 当我尝试上传一个文件时,它会显示警告消息。我是php新手。请帮助解决这个问题 phpEx6.php使用php上传文件时显示警告消息,php,file-upload,Php,File Upload,我正在使用带有XAMPP的ubuntu操作系统。在这里,我创建了两个文件uploader.php和phpEx6.php 当我尝试上传一个文件时,它会显示警告消息。我是php新手。请帮助解决这个问题 phpEx6.php <html> <head> <title>File Uploading Form</title> </head> <body> <h3>File Upload:</h3> Select
<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>
文件上载表格
文件上载:
选择要上载的文件:
uploader.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>
错误是关于,没有创建要将文件移动到的文件夹。。创建文件夹,然后重试,或者检查文件夹是否具有将文件上载到其中所需的所有权限。。
下面是上传文件的示例代码
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);
}
}
试着改变这个
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'])
您的问题可以有多个答案,如下所示:
以点(.)开头的路径,例如“./opt/foldername/”
创建要在其中插入文件和数据的文件夹并授予其写入权限
或者你可以在移动上传之前这样做,只要先检查目录是否存在,如果它不是比使用mkdir函数和比chmod给写权限和比使用上传函数。检查目录是否存在总是一种更好的做法,而不仅仅是将文件移动到那里
@Peter Darmis听起来像是由于缺少文件系统权限而导致上载失败。Web服务器守护程序用户是否有权访问上载目录?另外:那是什么?!确保您尝试移动到的目录确实存在$\u服务器['DOCUMENT\u ROOT']/opt/lampp/htdocs/xampp/nf/uploads/'.$\u文件['file']['name']也许吧?我只需要知道如何将一个文件从一个目录上传到另一个目录,如果任何一个目录有简单的代码供初学者理解,请发布它…..在/opt/lampp/htdocs/opt/lampp/htdocs/xampp/nf/uploads/sam.txt中查找文件,而不是/opt/lampp/htdocs/xampp/nf/uploads/sam.txt
。查看您的move\u upload\u file()
方法。我有上载文件夹“/opt/lampp/htdocs/xampp/nf/uploads”您是否检查了该文件夹的权限。。通常在Linux中,它不会拥有所有的权限…很抱歉,路径“/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'])