0

以下に、キャンセル メッセージを表示する cancelimage.php という php スクリプトがあります。

<?php

$image_file_name = $_FILES['fileImage']['name'] ;

    echo "$image_file_name Upload was Canceled";


?>

問題は、[キャンセル] ボタンをクリックしても、このメッセージが表示されないことです。代わりに、「ファイルのアップロード中にエラーが発生しました」というメッセージが表示されます。代わりにこのメッセージが表示される理由は、「stopImageUpload を返す」と言っているからだと思います。

では、私の質問は、現在行っているように stopImageUpload に戻るにはどうすればよいかということですが、代わりに、現在表示されているメッセージの代わりにキャンセル メッセージを表示できますか?

以下は、これを修正しようとする現在の試みですが、失敗しました。以下に、キャンセル ボタン関数と stopImageUpload 関数の両方を示します。

var cancelimagecounter = 0;
function startImageUpload(imageuploadform, imagefilename) {
    cancelimagecounter++;
    var _cancelimagecounter = cancelimagecounter;
    $('.imageCancel').on("click", function (event) {
        $('.upload_target').get(0).contentwindow
        $("iframe[name='upload_target']").attr("src", "javascript:'<html></html>'");
        jQuery.ajax("cancelimage.php?fileImage=" + image_file_name).done(function (data) {
            $(".imageemsg" + _cancelimagecounter).html(data);
        });
        return stopImageUpload();
    });
    return true;
}
var imagecounter = 0;
function stopImageUpload(success, imagefilename) {
    var result = '';
    if (success == 1) {
        result = '<span class="imagemsg' + imagecounter + '">The file was uploaded successfully!</span><br/><br/>';
        $('.listImage').eq(window.lastUploadImageIndex).append('<div>' + htmlEncode(imagefilename) + '<button type="button" class="deletefileimage" image_file_name="' + imagefilename + '">Remove</button><br/><hr/></div>');
    } else {
        result = '<span class="imageemsg">There was an error during file upload!</span><br/><br/>';
    }
    return true;
}
4

1 に答える 1

0

序文:Ajaxは私の強いスーツではありません.....

ファイル名をプルするためにphpに依存しています...しかし、アップロードが開始されるまで、PHPはファイル名を取得できません。実際のアップロードを行わずにファイル名を表示する場合は、DOM(入力ボタン)からファイル名を取得する必要があります。

$('input:file').change(function(){
    if ($(this).val()) {
    var filename = $(this).val().replace('C:\\fakepath\\', '');
    }
    $('.imageemsg').html('<p>this is the filename' + filename + '</p>');
});
于 2012-05-13T22:57:37.610 に答える