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

簡単に、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 に答える
1

たぶん、次のようなものを使用します:

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

私はインライン イベント ハンドラーを容認しませんが、それが確実に機能することを確認するための例にすぎません。onchangeポイントは、入力のイベントをキャッチして、fileそのフォームを送信することです。などを使用する代わりに、IDthis.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 に答える