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的主要内容,如果未能解决你的问题,请参考以下文章

PHP 使用.htaccess在PHP上载大(大)文件

php文件上载

提高PHP文件上载限制

Php文件上载脚本

PHP文件上载

php 为图像上载创建符号链接文件