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

时间:2016-11-02 00:07:36

标签: php html file-upload

作为课程的一部分,我被要求创建一个简单的文件上传系统,该系统将单个按钮中的文件上传到名为./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功能上传的代码,但没有一个可以同时上传。< / p>

2 个答案:

答案 0 :(得分:0)

您基本上正在寻找ajax上传。您可以使用javascript(在现代浏览器上)执行此操作,最简单的事情可能是使用像jquery这样的库。否则,您可以使用iframe执行此操作。

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

Using HTML5 file uploads with AJAX and jQuery

jQuery Ajax File Upload

答案 1 :(得分:0)

您可以尝试使用按钮但不能显示它。更改文件输入后,使用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();
}
?>