我想从php脚本上传文件(imageupload.php)的一个页面中检索文件名,并且我想在JavaScript函数(QandATable.php)内的另一个页面中显示它)。但我不知道如何做到这一点我得到一个未定义的变量
我会告诉你所有的相关代码,所以你可以关注它,所以你能够理解发生了什么。
更新:下面我将向您展示如何上传文件的步骤。下面的代码成功上传文件。
下面是表格(QandATable.php);
var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return imageClickHandler(this);' class='imageuploadform' >" +
<label>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>");
在同一个页面,当用户提交表单时,它会在下面的函数,它将检查确认,然后当确认是明确的,它会去到startImageUpload()
功能:
function imageClickHandler(imageuploadform){
if(imageValidation(imageuploadform)){
return startImageUpload(imageuploadform);
}
return false;
}
如果没有验证,它将进入下面的隐藏文件输入的JS函数(QandATable.php),它会将表单提交到发生文件上传的imageupload.php。当文件上传时,它会回调stopImageUpload()函数(QandAtable.php),它会显示有关文件是否已上传的消息,并且这是我希望服务器上的文件名称为追加。
下面是startImageUpload()函数:
var sourceImageForm;
function startImageUpload(imageuploadform){
$(imageuploadform).find('.fileImage').css('visibility','hidden');
sourceImageForm = imageuploadform;
return true;
}
下面是PHP脚本在那里上传文件(imageupload.php):
<?php
session_start();
$result = 0;
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>
最后,当上传完成后,又回到stopUploadImage()函数(QandATable.php)显示文件是否成功上传的消息。这也是我希望追加从服务器上传的文件名的地方。
function stopImageUpload(success){
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
$('.listImage').append('<br/>');
}
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
}
return true;
}
我看到的第一件事是在这个'var fileimagename = <?php echo $ fileimagename; ?>; '尝试'var fileimagename ='<?php echo $ fileimagename; ?>'; ' – Dale 2012-04-19 12:34:25
本来很高兴看到输出JavaScript代码的样子。 – 2012-04-19 12:35:24
@Dale仍然一样,仍然得到未定义的变量 – user1341521 2012-04-19 12:38:53