Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何附加刚刚上传的文件名?_Php_Javascript - Fatal编程技术网

Php 如何附加刚刚上传的文件名?

Php 如何附加刚刚上传的文件名?,php,javascript,Php,Javascript,我在附加imageNameArray时遇到了一个问题,它应该显示已上载的文件名 问题是,假设我之前上传了一个文件(pig.png),当我刷新页面并上传另一个文件(panda.png)时,当我上传文件时,它应该显示“panda.png”。但它只是附加了先前上传的文件(pig.png)的名称,而没有附加panda.png 如果我再次刷新页面并上传另一个文件(tiger.png),那么当我上传文件时,它应该显示“tiger.png”。但是它仍然只是附加了先前上传的文件名(panda.png),而没有附

我在附加imageNameArray时遇到了一个问题,它应该显示已上载的文件名

问题是,假设我之前上传了一个文件(pig.png),当我刷新页面并上传另一个文件(panda.png)时,当我上传文件时,它应该显示“panda.png”。但它只是附加了先前上传的文件(pig.png)的名称,而没有附加panda.png

如果我再次刷新页面并上传另一个文件(tiger.png),那么当我上传文件时,它应该显示“tiger.png”。但是它仍然只是附加了先前上传的文件名(panda.png),而没有附加tiger.png

如果我上传另一个文件(不是刷新页面),比如monkey.png,那么它会再次附加panda.png。没有monkey.png。因此,它应该附加tiger.png和monkey.png,而应该附加panda.png和panda.png

我只想在上传文件时,附加文件名。但如何才能做到这一点?请给出一个代码示例,说明如何修复它,因为我发现这比解释为什么会发生这种情况更容易:)

下面是发生追加的javascript代码:

    <?php
    session_start();

    $idx = count($_SESSION ['fileImage'] - 1);
    $output = isset($_SESSION ['fileImage'][$idx]) ?
        $_SESSION ['fileImage'][$idx]['name'] : "";

    ?>

<script type="text/javascript">

 function imageClickHandler(imageuploadform){ 
      if(imageValidation(imageuploadform)){ 
          return startImageUpload(imageuploadform); 
      } 
      return false;
  }

function startImageUpload(imageuploadform){

              $(".imageCancel").click(function() {
              $('.upload_target').get(0).contentwindow
          return stopImageUpload();
    });

      return true;
}

    function stopImageUpload(success){
        var imageNameArray = new Array();
        imageNameArray = <?php echo $output ?>;
        var result = '';

        if (success == 1){
            result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';

            for(var i=0;i<imageNameArray.length;i++)
            {
                $('.listImage').append(imageNameArray[i]+ '<br/>');
            }
        }
        else {
            result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
        }
        return true;
    }

</script>

<body>

<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return imageClickHandler(this);' class='imageuploadform' > 
Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><label class='imagelbl'>
<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>
</p><ul class='listImage' align='left'></ul>
<iframe class='upload_target' name='upload_target' src='#' style='width:0;height:0;border:0px;solid;#fff;'></iframe></form>");



</body>

函数imageClickHandler(imageuploadform){
if(imageValidation(imageuploadform)){
返回startImageUpload(imageuploadform);
} 
返回false;
}
函数startImageUpload(imageuploadform){
$(“.imageCancel”)。单击(函数(){
$('.upload_target')。获取(0)。内容窗口
返回stopImageUpload();
});
返回true;
}
函数stopImageUpload(成功){
var imageNameArray=新数组();
imageNameArray=;
var结果=“”;
如果(成功==1){
结果='文件已成功上载!

';
对于(var i=0;i而言,问题在于,当PHP代码呈现页面时,在上传(下一个)图像之前,您正在输出上传文件的名称

这发生在
stopImageUpload()
JavaScript函数的这一行:

imageNameArray = <?php echo $output ?>;
然后只需调整
imageupload.php的最后一行:

<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>
window.top.stopImageUpload(,'');
注意:如果您启用了允许
块的选项,则可以使上述代码看起来更好:

window.top.stopImageUpload(,);

等待有人首先回答这个问题:您能包含相关的表单标记和文件输入HTML吗?这将帮助我们理解您的代码流程。@汤姆,对不起,汤姆,我忘了标记您在上一个问题上给我的答案:)@NatePinchot给我5分钟来编辑上面的代码以包含表单code@NatePinchot我已经更新了代码以包含您可能需要的相关信息:)非常感谢您为我解决此问题:)
// stolen from http://stackoverflow.com/questions/1219860/javascript-jquery-html-encoding
function htmlEncode(value) { return $('<div/>').text(value).html(); }

function stopImageUpload(success, filename) {
  var imageNameArray = new Array();
  var result = '';

  if (success) {
    result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';

    $('.listImage').append(htmlEncode(filename) + '<br/>');
  } else {
    result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
  }
}
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?= $result ? 'true' : 'false'; ?>, <?= $_FILES['fileImage']['name'] ?>);</script>