0

ファイルをアップロードし、ディレクトリをスキャンしてリンクとして表示するように php を記述します。ディレクトリのスキャンはうまく機能します。ディレクトリに作成したテキスト ファイルは表示されますが、ローカル ファイルを目的のディレクトリに移動することはできません。ファイルがありません。実行後に表示されます。

問題には次の行が含まれている可能性があると思います。

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>
4

2 に答える 2

0

uploadとファイル名の間にディレクトリ区切り文字がありません。次のようにする必要があります。

move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/BlueTapeLogin/upload/".$_FILES["file"]["name"]);

表示されるアクセス許可は、ルートのみがそのディレクトリに書き込むことができると言っていますが、Web サーバーはおそらく www-user のようなユーザー ID を使用しています。ディレクトリの所有権を Web サーバーのユーザー ID に変更する必要があります。これは、サーバー管理者が行う必要があります。

多くの場合、Web サーバーが既に書き込みを許可されている別のディレクトリがあります。サーバー管理者は、使用するディレクトリを教えてくれるはずです。

于 2013-07-20T03:54:18.333 に答える
0

そのディレクトリにアップロードするためのユーザー権限を確認し、簡単にするようにしてください。ファイルを他のディレクトリにアップロードするだけで、それが機能しているかどうかを確認し、コードを1つずつ確認してください。

戻り値をチェック 警告が出ていないかチェック

戻り値

成功すると TRUE を返します。

filename が有効なアップロード ファイルでない場合、アクションは発生せず、move_uploaded_file() は FALSE を返します。

filename が有効なアップロード ファイルであるが、何らかの理由で移動できない場合、アクションは発生せず、move_uploaded_file() は FALSE を返します。さらに、警告が発行されます。

于 2013-07-20T04:00:21.787 に答える