我在下面有一个函数,当文件停止上传时,它会显示一条消息,无论上传是否成功,更重要的是显示使用以下代码上传的文件的名称:
$('.listImage').append(nameimagefile + '<br/>');
上面的代码检索从文件输入中选择的文件的名称。这样做的问题是我不希望在文件输入中输入文件名。相反,我想要上传到服务器的文件的名称。
例如,如果我上传了 2 个文件,它们都是郁金香.png,在服务器中它们被保存并上传为郁金香.png和郁金香2.png但由于我使用的是$('.listImage').append(nameimagefile + '<br/>');
,它将两个文件名都显示为"郁金香.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脚本。 aLl 它所做的是上传文件,如果文件存在于服务器的文件夹中。如果它存在,那么它通过在文件名末尾添加一个名称来给它一个不同的文件名,如果它不存在,那么它会上传具有相同名称的文件:
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>
希望这就是您需要的所有信息,谢谢。
你可以
$_FILES["fileImage"]["name"]
作为参数传递给你的js函数。Javascript是一种客户端语言,因此无法处理服务器上的文件。