-1

結果に応じてメッセージを表示するjavscript関数が以下にあります。

   function stopImageUpload(success){
          var result = '';
          if (success == 1){
             result = '<span class="msg">The file was uploaded successfully!<\/span><br/><br/>';
          }
          else {
             result = '<span class="emsg">There was an error during file upload!<\/span><br/><br/>';
          }  
          return true;   
    }

以下のコードは、常に「ファイルが正常にアップロードされました!」というメッセージを表示します。

   <?php

       $destination_path = str_replace("//", "/", $_SERVER['DOCUMENT_ROOT']."/")."ImageFiles";

       $result = 0;

       $target_path = $destination_path . basename( $_FILES['fileImage']['name']);

       if(move_uploaded_file($_FILES['fileImage']['tmp_name'], $target_path)) {
          $result = 1;
       }

       sleep(1);

    ?>

   <script type='text/javascript' language='javascript'>
      window.top.window.stopImageUpload(1);
   </script>

しかし、最後の行を以下のように変更すると、常に「ファイルのアップロード中にエラーが発生しました!」というメッセージが表示されます。これはなぜですか。また、結果に応じて適切なメッセージが表示されるように修正するにはどうすればよいですか。

<script language="javascript" type="text/javascript">
  window.top.window.stopImageUpload(<?php echo $result; ?>);
</script>
4

1 に答える 1

1

これ<?php echo $result; ?>が実際に何をレンダリングするかを調べてください。ページのソースを見てください。

ほとんどの場合、それは0. 次に、move_uploaded_filefalse を返す理由を調べてみてください。おそらく、ファイルの移動中に何か問題が発生しています。

于 2012-04-11T14:31:35.153 に答える