浏览文件后,php上传自动提交

时间:2012-12-04 20:24:53

标签: php javascript html

我想创建一个简单的网站,让您浏览一个mp3并自动上传。

这是我的代码

<?php

if(isset($_POST['submit'])){
$file = $_FILES['mp3']['name'];
$tmp = $_FILES['mp3']['tmp_name'];
echo "$file";
move_uploaded_file($tmp, "member/mp3/".$file);
echo"Success";

}
    ?>

    <html>

<form enctype="multipart/form-data" method="POST" action="upload.php">

<input type="file" name="mp3" /><br />
<input type="submit" name="submit" value="Upload" />
</form>

 </html>

这里的代码是我最初的尝试,但仍然使用手动表格。

如何自动上传?

2 个答案:

答案 0 :(得分:1)

也许使用这样的东西:

<input type="file" name="mp3" onchange="this.form.submit();" />

虽然我不宽恕内联事件处理程序,但它只是一个确保它适合您的示例。关键是要捕获onchange输入的file事件,然后提交其表单。您可以使用this.form ID(在给出一个ID之后)并在其上调用form,而不是使用submit()或其他任何内容。

<强>更新

要保持现有的PHP代码正常工作,请为您的提交按钮添加id属性(“提交”以外的其他属性)并尝试使用此代码:

<input type="file" name="mp3" onchange="document.getElementById('submit_button_id').click();" />

同样,如果您将其设置为函数调用,则可以更易于维护/读取,例如:

<input type="file" name="mp3" onchange="submitForm();" />
<input type="submit" name="submit" id="submit_button_id" value="Upload" />

<script type="text/javascript">
    function submitForm() {
        // However you need to submit the form

        document.getElementById("submit_button_id").click(); // Or whatever
    }
</script>

如果您希望更改PHP,则可以使用原始的this.form.submit();(或者以任何方式在表单元素上使用.submit())。在PHP中,您真正关心的是检查是否设置了$_FILES['mp3'],因此如果您需要检查提交按钮的存在,则取决于您。我完全忘记了isset()是如何工作的,所以我不想假设并告诉你一些错误。您可能可以使用其他逻辑,但您真正关心的是文件是否在提交中发送,即使它确保使用按钮来提交它也会“更好”(尽管不是必需的) )。

答案 1 :(得分:1)

简单,将onchange() JS事件附加到它。

<input type="file" name="mp3" onchange="call .submit() on a form"/><br />

这将在用户选择文件时提交表单。在Jquery或单独的JS脚本中创建这些处理程序更安全,更高效。但是对于这个例子,没关系。

有关详细信息,请查看此问题:HTML <input type='file'> File Selection Event