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



我想做一个简单的网站,让你浏览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>

这里的代码是我最初的尝试,但它仍然使用手动形式

如何自动上传?

也许可以使用这样的东西:

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

虽然我不容忍内联事件处理程序,但这只是一个确保它适用于您的示例。重点是捕获file输入的onchange事件,然后提交其表单。您可以通过ID(在给它一个ID之后)获取form并在其上调用submit(),而不是使用this.form或其他什么。

更新:

为了保持现有的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()是如何工作的,所以我不想假设并告诉你一些错误。你可能可以使用其他逻辑,但你真正关心的是文件是否在提交时发送,尽管如果你确保使用了一个按钮来提交它(尽管没有必要),它可能会让它"更好"。

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

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

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

有关详细信息,请查看此问题:HTML<输入类型=';文件'>文件选择事件

最新更新