PHP - 文件上载后执行JavaScript
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP - 文件上载后执行JavaScript相关的知识,希望对你有一定的参考价值。
我在文件完成上传时执行javascript时遇到问题...
使用以下AJAX代码,我正在执行两个php脚本。
function _(el){
return document.getElementById(el);
}
function uploadFile () {
var file = _("file").files[0];
var formdata = new FormData();
formdata.append("file", file);
var ajax = new XMLHttpRequest();
ajax.open("POST", "file.php");
ajax.send(formdata);
}
<?php
echo ('<script type="text/javascript">alert("hi");</script>');
?>
和
<?php
if(move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/uploaded.txt")) {
echo ('<script type="text/javascript">alert("hi");</script>');
}
?>
第一个脚本显示正确,但即使在上载完成后,第二个脚本也不会显示警报。
我认为这是由添加JavaScript时页面加载不正确引起的,但我不知道如何处理。
任何帮助表示赞赏!
答案
尝试以这种方式使用javascript:
window.top.window.yourFunctionName();
在你的情况下,它会像:
echo ('<script type="text/javascript">window.top.window.alert("hi");</script>');
另一答案
这里的问题是你有一个错字。它应该是$_FILES
而不是$FILES
你也没有正确使用move_uploaded_file()
功能。语法如下
move_uploaded_file($tmp_name, "$uploads_dir/$name");
哪里
$tmp_name = $_FILES["file"]["tmp_name"];
$uploads_dir = 'Location Folder of where the file should be stored';
$name = $_FILES["file"]["name"];
另外,我强烈建议您为此上传模块添加一些验证。实际上,可以轻松上传特洛伊木马等恶意文件。
以上是关于PHP - 文件上载后执行JavaScript的主要内容,如果未能解决你的问题,请参考以下文章