我想创建一个简单的网站,让您浏览一个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>
这里的代码是我最初的尝试,但仍然使用手动表格。
如何自动上传?
答案 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