通过内部PHP函数上传单个按钮文件



作为课程的一部分,我被要求创建一个简单的文件上传系统,通过一个按钮将文件上传到一个名为。/files的文件夹。我已经能够做到这一点,我已经能够保持它都包含在一个a3.php文件这样:

<form action="a3.php" method="post" enctype="multipart/form-data">
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload" name="submitFile">
</form>

打开一个文件对话框,只需要用户按两个按钮

我使用下面的函数来运行上传函数。

if(isset($_POST['submitFile']))
{
    uploadFile();
}

uploadFile()函数只是使用move_uploaded_file将文件移动到。/files文件夹。目前没有任何问题。

我的问题是,我试图使按钮的文件上传一个单一的已经受阻。我已经尝试使用以下代码来解决这个问题:

<form name="frm" action="a3 - Copy.php" method="post" enctype="multipart/form-data"> 
    <input type="file" name="uploadFile" onchange="frm.submit();">
</form>

当它刷新页面时,就好像正在执行某个操作,但它似乎什么也不做。我曾试图研究.submit()是如何工作的,但还没有更深入地了解它在onchange的一部分可能具有的任何复杂性。

我已经环顾四周,我已经找到了可以在单个按钮中上传的代码,我已经找到了可以使用内部php函数上传的代码,但没有一个可以同时完成。

您可以尝试使用按钮但不显示它。当文件输入改变时,使用javascript触发隐藏按钮的点击,如下面的代码所示:

<form name="frm" action="a3 - Copy.php" method="post" enctype="multipart/form-data"> 
    <input type="submit" name="submitFile" style="display:none" id="submit">
    <input type="file" name="uploadFile" onchange="document.getElementById('submit').click()">
</form>
<?php
if(isset($_POST['submitFile']))
{
    uploadFile();
}
?>

你基本上是在寻找一个ajax上传。您可以使用javascript(在现代浏览器上)做到这一点,最简单的方法可能是使用jquery之类的库。否则,您可以使用iframe。

下面是一些类似的问题与示例脚本-

使用AJAX和jQuery上传HTML5文件

文件上传

最新更新