0

我在下面有一个 JavaScript 函数,它在文件上传完成后显示一条消息:

function stopVideoUpload(success) {
  var namevideofile = $('.fileVideo').val();
  var result = '';
  if (success == 1) {
    result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
    $('.listVideo').append(namevideofile + '<br/>');
  }
  else {
    result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
  }
  return true;
}​

以下是成功上传文件的另一个页面上的 php 脚本:

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

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

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

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

      }


?>

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

现在除了必须var namevideofile从文件输入值中检索值(.fileVideo 是文件输入的类),我想要它做的是当上传完成时,在服务器中给文件的名称将是 var namevideofile . 因此,如果我有 2 个称为 video.png 的文件,正如我在 php 代码中所述,如果文件存在,则在文件名末尾添加一个数字,以便在服务器中创建 video.png 和 video1.png。

因此,当我 append 时namevideofile,它应该在两个文件的上传完成后显示 video.png 和 video1.png 。, 的问题var namevideofile = $('.fileVideo').val();在于它将两个文件名都显示为 video.png 这是不正确的。

那么有谁知道如何更改var namevideofile,以便在上传后从服务器检索文件名?问题是 php 脚本与 JS 函数 (QandATable.php) 位于单独的页面 (videoupload.php) 上,因此此处是否需要涉及 ajax。

任何可以提供如何编码示例的人都会对我很有帮助:)

4

1 回答 1

0

您可以echo将值存储在 javaScript 变量中:

var namevideofile = <php echo $filename; ?>;
于 2012-04-18T16:52:44.010 回答