0

「キャンセル」ボタンがあり、ユーザーがクリックするとソースがリセットされ、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();


?>
4

2 に答える 2

2

cancelimage.phpを呼び出す$_FILES['fileImage']['name']と、その名前は含まれなくなります。アップロードされたページのファイル名のみが含まれます。名前はCookieやセッションなどに保存する必要があります。


編集:

クライアントからの入力を決して信頼しないでください。

move_uploaded_file($_FILES["fileImage"]["tmp_name"], "ImageFiles/" . $_FILES["fileImage"]["name"]);

ファイル名'../imageupload.php'で何かをアップロードした場合はどうなりますか。あなたのサイトは壊れてしまうでしょう;)さらに悪いことに、私はあらゆる種類の厄介なコードを挿入する可能性があります。

于 2012-05-06T13:39:24.970 に答える
0

stopImageUpload();を返します。

youステートメントは、停止イメージが処理され、実行が返されるように読み取られます。次のステートメントjQuery.ajax("cancelimage.php")が呼び出されることはありません。

于 2012-05-06T13:59:36.183 に答える