Php 如何附加刚刚上传的文件名?
我在附加imageNameArray时遇到了一个问题,它应该显示已上载的文件名 问题是,假设我之前上传了一个文件(pig.png),当我刷新页面并上传另一个文件(panda.png)时,当我上传文件时,它应该显示“panda.png”。但它只是附加了先前上传的文件(pig.png)的名称,而没有附加panda.png 如果我再次刷新页面并上传另一个文件(tiger.png),那么当我上传文件时,它应该显示“tiger.png”。但是它仍然只是附加了先前上传的文件名(panda.png),而没有附加tiger.png 如果我上传另一个文件(不是刷新页面),比如monkey.png,那么它会再次附加panda.png。没有monkey.png。因此,它应该附加tiger.png和monkey.png,而应该附加panda.png和panda.png 我只想在上传文件时,附加文件名。但如何才能做到这一点?请给出一个代码示例,说明如何修复它,因为我发现这比解释为什么会发生这种情况更容易:) 下面是发生追加的javascript代码:Php 如何附加刚刚上传的文件名?,php,javascript,Php,Javascript,我在附加imageNameArray时遇到了一个问题,它应该显示已上载的文件名 问题是,假设我之前上传了一个文件(pig.png),当我刷新页面并上传另一个文件(panda.png)时,当我上传文件时,它应该显示“panda.png”。但它只是附加了先前上传的文件(pig.png)的名称,而没有附加panda.png 如果我再次刷新页面并上传另一个文件(tiger.png),那么当我上传文件时,它应该显示“tiger.png”。但是它仍然只是附加了先前上传的文件名(panda.png),而没有附
<?php
session_start();
$idx = count($_SESSION ['fileImage'] - 1);
$output = isset($_SESSION ['fileImage'][$idx]) ?
$_SESSION ['fileImage'][$idx]['name'] : "";
?>
<script type="text/javascript">
function imageClickHandler(imageuploadform){
if(imageValidation(imageuploadform)){
return startImageUpload(imageuploadform);
}
return false;
}
function startImageUpload(imageuploadform){
$(".imageCancel").click(function() {
$('.upload_target').get(0).contentwindow
return stopImageUpload();
});
return true;
}
function stopImageUpload(success){
var imageNameArray = new Array();
imageNameArray = <?php echo $output ?>;
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
for(var i=0;i<imageNameArray.length;i++)
{
$('.listImage').append(imageNameArray[i]+ '<br/>');
}
}
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
}
return true;
}
</script>
<body>
<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return imageClickHandler(this);' class='imageuploadform' >
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>");
</body>
函数imageClickHandler(imageuploadform){
if(imageValidation(imageuploadform)){
返回startImageUpload(imageuploadform);
}
返回false;
}
函数startImageUpload(imageuploadform){
$(“.imageCancel”)。单击(函数(){
$('.upload_target')。获取(0)。内容窗口
返回stopImageUpload();
});
返回true;
}
函数stopImageUpload(成功){
var imageNameArray=新数组();
imageNameArray=;
var结果=“”;
如果(成功==1){
结果='文件已成功上载!
';
对于(var i=0;i而言,问题在于,当PHP代码呈现页面时,在上传(下一个)图像之前,您正在输出上传文件的名称
这发生在stopImageUpload()
JavaScript函数的这一行:
imageNameArray = <?php echo $output ?>;
然后只需调整imageupload.php的最后一行:
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>
window.top.stopImageUpload(,'');
注意:如果您启用了允许
块的选项,则可以使上述代码看起来更好:
window.top.stopImageUpload(,);
等待有人首先回答这个问题:您能包含相关的表单标记和文件输入HTML吗?这将帮助我们理解您的代码流程。@汤姆,对不起,汤姆,我忘了标记您在上一个问题上给我的答案:)@NatePinchot给我5分钟来编辑上面的代码以包含表单code@NatePinchot我已经更新了代码以包含您可能需要的相关信息:)非常感谢您为我解决此问题:)
// stolen from http://stackoverflow.com/questions/1219860/javascript-jquery-html-encoding
function htmlEncode(value) { return $('<div/>').text(value).html(); }
function stopImageUpload(success, filename) {
var imageNameArray = new Array();
var result = '';
if (success) {
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
$('.listImage').append(htmlEncode(filename) + '<br/>');
} else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
}
}
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?= $result ? 'true' : 'false'; ?>, <?= $_FILES['fileImage']['name'] ?>);</script>