2012-05-13 96 views
0

下面我有一個PHP腳本稱爲cancelimage.php它會顯示取消消息:如何顯示正確的消息?

<?php 

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

    echo "$image_file_name Upload was Canceled"; 


?> 

的問題是,當我點擊「取消」按鈕,它不會顯示此消息。相反,它會顯示消息「文件上傳過程中出現錯誤」。我相信這個消息出現的原因是因爲我說「return 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; 
} 

回答

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>'); 
});