ユーザーが「削除」ボタンをクリックすると、追加されたファイル名を .listImage から削除する以下の JavaScript 関数があります。
function stopImageUpload(success, imagefilename){
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
$('.listImage').eq(window.lastUploadImageIndex).append('<div>' + htmlEncode(imagefilename) + '<button type="button" class="deletefileimage">Delete</button><br/><hr/></div>');
}
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
}
$(".deletefileimage").on("click", function(event) {
$(this).parent().remove();
});
return true;
}
ご覧のとおり、$(".deletefileimage").on("click", function(event) {
は、追加された正しいファイル名を削除するために使用されます。
しかし、私がやりたいことは、ユーザーがファイル名を削除すると、サーバーからもファイルが削除されることです。だから私はこのコードを使用しようとしています: unlink($_FILES["fileImage"]["temp_name"]);
サーバーからファイルを削除します。
しかし、私が知りたいのは、このコードをどこに保存して、javascript関数を使用して追加されたファイル名を削除し、phpスクリプトに移動してサーバーからファイルを削除できるかということです?
以下は、ファイルのアップロードが行われる php スクリプト (imageupload.php) です。
<?php
session_start();
$result = 0;
if( file_exists("ImageFiles/".$_FILES['fileImage']['name'])) {
$parts = explode(".",$_FILES['fileImage']['name']);
$ext = array_pop($parts);
$base = implode(".",$parts);
$n = 2;
while( file_exists("ImageFiles2/".$base."_".$n.".".$ext)) $n++;
$_FILES['fileImage']['name'] = $base."_".$n.".".$ext;
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"ImageFiles2/" . $_FILES["fileImage"]["name"]);
$result = 1;
}
else
{
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"ImageFiles2/" . $_FILES["fileImage"]["name"]);
$result = 1;
}
?>
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>