【问题标题】:How to retrieve the name of the file's name from the server using javascript?如何使用 javascript 从服务器中检索文件名的名称?
【发布时间】:2012-04-18 06:46:38
【问题描述】:

我在下面有一个函数,当文件停止上传时,它会显示一条消息是否上传成功,然后更重要的是使用下面的代码显示上传的文件的名称:

 $('.listImage').append(nameimagefile + '<br/>');

上面的代码检索从文件输入中选择的文件的名称。但是,问题在于我不希望在文件输入中输入文件的名称。相反,我想要上传到服务器的文件的名称。

例如,如果我上传了 2 个都是 tulips.png 的文件,则在服务器中将它们保存并上传为 tulips.png 和 tulips2.png 但因为我使用的是$('.listImage').append(nameimagefile + '&lt;br/&gt;');,所以它会将两个文件名都显示为' tulips.png' 这不是我想要的。

所以这就是我决定不从输入文件的值中提取文件名的地方,而是从上传到文件中时保存的名称。

如何在 javascript 函数中编写代码?

javascript 函数和 php 脚本在单独的页面上,但我确实在 php 脚本中使用了 javascript 函数的回调函数:

下面是表格代码:

<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> 
    <ul class='list'></ul>
    </form>

以下是获取文件名并在文件成功与否时显示消息的 javascript 函数:

   function stopImageUpload(success){

          var nameimagefile = $('.fileImage').val();
          var result = '';
          if (success == 1){
             result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
             $('.listImage').append(nameimagefile + '<br/>');
          }
          else {
             result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
          }

 return true;

}

最后是带有 javascript 回调函数的 php 脚本。 a它所做的只是上传文件,如果文件存在或不存在于服务器的文件夹中。如果存在,则通过在文件名末尾添加名称来为其赋予不同的文件名,如果不存在,则上传具有相同名称的文件:

if( file_exists("ImageFiles/".$_FILES['fileImage']['name'])) {
    $parts = explode(".",$_FILES['fileImage']['name']);
    $ext = array_pop($parts);
    $base = implode(".",$parts);
    $n = 2;

    while( file_exists("ImageFiles/".$base."_".$n.".".$ext)) $n++;
    $_FILES['fileImage']['name'] = $base."_".$n.".".$ext;

    move_uploaded_file($_FILES["fileImage"]["tmp_name"],
    "ImageFiles/" . $_FILES["fileImage"]["name"]);
    $result = 1;

}
    else
      {
      move_uploaded_file($_FILES["fileImage"]["tmp_name"],
      "ImageFiles/" . $_FILES["fileImage"]["name"]);
      $result = 1;

      }


?>

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

希望这就是您需要的所有信息,谢谢。

【问题讨论】:

  • 如果您认为有一种 php 方式比 javascript 方式更好地检索文件名并能够将其放入 javascript 函数中,那么我也愿意接受这些想法 :)

标签: php javascript jquery


【解决方案1】:

您可以将$_FILES["fileImage"]["name"] 作为参数传递给您的 js 函数。 Javascript 是一种客户端语言,因此无法处理服务器上的文件。

【讨论】:

  • 嗨,我怎样才能将 $_FILES["fileImage"]["name"] 作为参数传递给 js 函数?就像我说的那样,php 脚本位于 javascript 函数的单独页面上
  • 在php脚本中,上传完成后,设置一个包含上传文件名称的$_SESSION变量。我已经编辑了你的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-16
  • 2015-06-03
  • 1970-01-01
  • 2012-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多