1

我想制作一个简单的网站,让您可以浏览 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>

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

如何自动进行此上传?

4

2 回答 2

1

也许使用这样的东西:

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

尽管我不容忍内联事件处理程序,但这只是一个示例,以确保它适合您。关键是要捕获输入的onchange事件,file然后提交它的表单。而不是使用this.form或其他方式,您可以form通过 ID 获取(在给它之后)并调用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()工作的,所以我不想假设并告诉你有什么问题。您可能可以使用其他逻辑,但您真正关心的是文件是否在提交中发送,即使如果您确保使用按钮提交它可能会使它“更好”(尽管不是必需的)。

于 2012-12-04T20:33:47.377 回答
1

很简单,给它附加一个onchange()JS 事件。

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

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

有关更多信息,请查看此问题:HTML <input type='file'> 文件选择事件

于 2012-12-04T20:36:01.490 回答