我有以下後文件上傳完成後它會顯示一個消息的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