ファイルが存在しない場合にサーバーにファイルをアップロードする方法を大まかに理解しました。ファイルが存在する場合、クライアントが既存のファイルを上書き/削除し、新しいファイルをアップロードできるようにしたいと思います。はい、両方のファイルが同じ名前でなければなりません。
だから私がやろうとしていたのは、ファイルが存在するときに、既存のファイルを削除して新しいファイルをアップロードする関数を呼び出すswitchステートメントを使用するか、PHPコードを強制的に終了させてアップロードをキャンセルすることでした
if (isset($_GET['run'])) $linkchoice=$_GET['run'];
else $linkchoice='';
switch($linkchoice){
case 'one' :
upload_file();
break;
case 'two' :
kill();
break;
次に、関数を実行するためのリンクを提供します
<a class=button href='?run=one'>Replace Existing File</a><br/>
<a class=button href='?run=two'>Cancel Upload</a>
全体をまとめてみたのがこちら。
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
$allowedExts = array("xml");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if (($_FILES["file"]["type"] == "text/xml")
&& in_array($extension, $allowedExts)){
if ($_FILES["file"]["error"] > 0){
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else{
if (file_exists("SIMxml/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " file already exists.<br/>";
$file = $_FILES["file"]["name"];
$type = $_FILES["file"]["type"];
$size = ($_FILES["file"]["size"] / 1024);
/* if (isset($_GET['run'])) $linkchoice=$_GET['run'];
else $linkchoice='';
switch($linkchoice){
case 'one' :
upload_file($file,$type,$size,$temp);
case 'two' :
kill();
}
echo "<a class=button href='?run=one'>Replace Existing File</a><br/>";
echo "<a class=button href='?run=two'>Cancel Upload</a>"; */
}
else{
echo "File: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
move_uploaded_file($_FILES["file"]["tmp_name"],
"/var/www/jd/SIMxml/" . $_FILES["file"]["name"]);
echo "Stored in: " . "SIMxml/" . $_FILES["file"]["name"];
}
}
}
else{
echo "Invalid file";
}
?>
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
function delete_file($file){
unlink("/var/www/jd/SIMxml/" . $file);
}
function upload_file($file,$type,$size,$temp){
echo $file;
delete_file($file);
echo "File: " . $file . "<br>";
echo "Type: " . $type . "<br>";
echo "Size: " . $size . " kB<br>";
move_uploaded_file($temp,
"/var/www/jd/SIMxml/" . $file);
echo "Stored in: " . "SIMxml/" . $file;
}
function kill(){
}
?>
明らかにこれは機能しません。私は、いくつかの概念/アイデアを結び付けたり実装したりするのに苦労しています。
これを実装する方法を理解するためのアドバイスをいただければ幸いです。
よろしくお願いします、JD