0

ユーザーがファイルをアップロードした後、ファイルの名前を表示しようとしています。ファイルは正常にアップロードされますが、javascript では以下のメッセージが表示され続けます。

ファイル (未定義) が正常にアップロードされました!

ファイル名を表示する必要があるときに未定義を表示し続けます。どうしてこれなの?何が起こっているかというと、ユーザーがファイルをアップロードすると、ファイルは「ImageFiles」フォルダーにアップロードされ、アップロードが完了すると、以下の JavaScript 関数が、正常にアップロードされたファイルの名前を示すメッセージを表示します。

以下は、アップロード後にファイル名とメッセージを表示するコードです。

function stopImageUpload(success){

    function handleFileSelect(evt) {
    var files = evt.target.files;
    localStorage["fname"] = files[0].name; //save the name for future use
}

$('.fileImage').bind('change', handleFileSelect, false);


      var result = '';
      if (success == 1){
  result = '<span class="msg">The file ('+localStorage["fname"]+') was uploaded successfully!</span><br/><br/>';
    localStorage["fname"] = undefined; //remove the temporary variable

      }
      else {
         result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
      }

      return true;   
}

以下はフォームです:

  <form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='stopImageUpload(this);' class='imageuploadform' >
    <p>Image File: <input name='fileImage' type='file' class='fileImage' />
    <input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' />
    </p> 
    </form>
4

2 に答える 2

2

これを試して:

var fileName;
function stopImageUpload(success){

    function handleFileSelect(evt) {
    var files = evt.target.files;
    fileName = files[0].name; //save the name for future use
}

$('.fileImage').bind('change', handleFileSelect, false);


      var result = '';
      if (success == 1){
  result = '<span class="msg">The file ('+fileName+') was uploaded successfully!</span><br/><br/>';
    fileName = ""; //remove the temporary variable

      }
      else {
         result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
      }

      return true;   
}
于 2012-04-16T12:56:59.360 に答える
1

テストされていませんが、getItem/setItem を使用してみて、何かが変わるかどうかを確認してください。

function stopImageUpload(success){

    function handleFileSelect(evt) {
       var files = evt.target.files;
       console.log(files[0].name); //see if a name really exists, or if something is wrong outside this function?
       localStorage.setItem("fname", files[0].name); //save the name for future use
    }

    $('.fileImage').on('change', handleFileSelect);

    var result = '';
    if (success == 1){
        result = '<span class="msg">The file ('+localStorage.getItem("fname")+') was uploaded successfully!</span><br/><br/>';
        localStorage.setItem("fname", ""); //remove the temporary variable
    } else {
        result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
    }
    return true;   
}
于 2012-04-16T12:57:16.170 に答える