我有以下后文件上传完成后它会显示一个消息的JavaScript函数:如何从PHP获取文件名,并把它在JS
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。所以如果我有两个文件叫做video.png,正如我在php代码中所说的那样,如果文件存在,那么在文件名的末尾添加一个数字,以便在服务器中创建video.png和video1.png。
所以当我追加namevideofile
时,应该在两个文件上传完成后显示video.png和video1.png。 var namevideofile = $('.fileVideo').val();
的问题在于它将两个文件名显示为不正确的video.png。
那么有谁知道如何更改var namevideofile
,以便它在上传后从服务器检索文件名?问题在于php脚本在JS函数(QandATable.php)的单独页面(videoupload.php)中,所以ajax需要在这里参与或不参与。
任何人谁可以提供这如何可以被编码将是非常有帮助的我:)
我想是这样这之前,但我不断得到一个未定义的表达标志W错误或类似的东西。你可以告诉我$ filename是如何被调用的,因为也许我在worng的地方调用它,你会在哪里调用$ filename? – user1341521 2012-04-18 16:59:03
如果你想在不同的页面上访问一个php变量,你可以将它存储在SESSION变量中,比如$ _SESSION [“filename”],http://php.net/manual/en/features.sessions.php – undefined 2012-04-18 17:09:13
Just以确保如果我理解,我是这样编码:'if(isset($ _ SESSION ['filename']))$ _SESSION ['filename'] = $ _SESSION ['$ _FILES ['fileVideo'] ['name ']']'在PHP脚本和JavaScript代码只是'echo $ filename'? – user1341521 2012-04-18 17:17:20