「キャンセル」ボタンがあり、ユーザーがクリックするとソースがリセットされ、iframeが削除されるため、ユーザーが「キャンセル」ボタンをクリックした後にファイルがサーバーにアップロードされません。これは正常に機能しています。
しかし、私が抱えている問題は、ユーザーが[キャンセル]ボタンをクリックした後も、データベースに行を挿入したくないということです。しかし、ファイルがアップロードされた場合、ファイル名を表示する行をデータベースに挿入すると述べたように、「キャンセル」ボタンをクリックすると、「キャンセル」に移動するということを考えていました。行を削除する.php"ページ。したがって、技術的には、[キャンセル]ボタンをクリックすると、行が挿入されてから削除されます。
問題は、行を削除するのではなく、行を挿入するだけであるということです。データベースの行を削除するにはどうすればよいですか?
以下は、アップロードを開始し、キャンセルボタン関数が機能するstartImageUpload()関数です。
function startImageUpload(imageuploadform){
$(".imageCancel").on("click", function(event) {
$("iframe[name='upload_target']").attr("src", "javascript:'<html></html>'");
return stopImageUpload();
jQuery.ajax("cancelimage.php")
});
return true;
}
以下は、データベースに行を挿入するアップロードスクリプト(imageupload.php)を含むコードです。
<?php
session_start();
$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect('localhost',$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$result = 0;
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"ImageFiles/" . $_FILES["fileImage"]["name"]);
$result = 1;
$imagesql = "INSERT INTO Image (ImageFile)
VALUES ('ImageFiles/".mysql_real_escape_string($_FILES['fileImage']['name'])."')";
mysql_query($imagesql);
}
mysql_close();
?>
最後に、データベースから行を削除することを想定したcancelimage.phpページを以下に示します。
<?php
$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect('localhost',$username,$password);
mysql_select_db($database) or die( "Unable to select database");
echo "File Upload was Canceled";
$imagecancelsql = "DELETE FROM Image
WHERE ImageFile = 'ImageFiles/". mysql_real_escape_string($_FILES['fileImage']['name'])."'";
mysql_query($imagecancelsql);
mysql_close();
?>