我写php上传文件并扫描目录以显示它们作为链接,scaning directoy工作正常我可以看到我在目录中创建的文本文件,但我只是无法将本地文件移动到所需的目录。执行后没有文件出现。
我认为问题可能包含在这一行中:
move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/BlueTapeLogin/upload".$_FILES["file"]["name"]);
我真正想要的是将图像上传到/ var / www / BlueTapeLogin / upload中的目录 我的php文件位于/var/www/BlueTapeLogin/upload_image.php 如何更改代码以使其工作?提前谢谢。
请参阅我的完整代码:
<html>
<head>
<?php
try
{
if (!empty($_POST["delete"])){
$delete=$_POST["delete"];
echo"we have the command delete this file:";
echo $delete;
$file = "upload/".$delete;
echo "/n***************";
echo "you want delete :";
echo $file;
echo "***************";
if (!unlink($file))
{
echo ("Error deleting $file");
}
else
{
echo ("Deleted $file");
}
}else{}
}catch(Exception $e)
{
echo 'Message: ' .$e->getMessage();
}
?>
<?php
move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/BlueTapeLogin/upload".$_FILES["file"]["name"]);
?>
<?php
$dir=scandir("/var/www/BlueTapeLogin/upload") ;
for($j=0;$j<count($dir);$j++){
echo $dir[$j];
echo"\n";
$target = $dir[$j]; // This is the file that already exists
$link = $dir[$j]; // This the filename that you want to link it to
echo "<a href=upload/".$link.">".$link."</a>";
}
?>
</head>
<body>
<form action="upload_image.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit"><br>
<label for="file">Delete</label>
<input type="text" name="delete" id="delete"><br>
<input type="submit" name="submit" value="Submit">
</form>
<a href="http://localhost/front2.php">logout</a>
</body>
</html>
答案 0 :(得分:0)
你错过了upload
和文件名之间的目录分隔符,它应该是:
move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/BlueTapeLogin/upload/".$_FILES["file"]["name"]);
您显示的权限表示只有root可以写入该目录,但Web服务器可能正在使用像user-user这样的用户ID。您需要将目录的所有权更改为Web服务器用户标识。这必须由服务器管理员完成。
更有可能的是,已经允许Web服务器写入另一个目录。服务器管理员应该能够告诉您使用哪个目录。
答案 1 :(得分:0)
检查用户在该目录中上传的权限,并尝试简化。只需将文件上传到其他目录,看它是否正常工作,而不是逐一检查您的代码。
检查返回值,检查是否发出警告
返回值
成功时返回TRUE。
如果filename不是有效的上传文件,则不会执行任何操作,move_uploaded_file()将返回FALSE。
如果filename是有效的上传文件,但由于某种原因无法移动,则不会执行任何操作,move_uploaded_file()将返回FALSE。此外,还会发出警告。