16

このコードの問題点を知っている人がいたら教えてください。

基本的にはjQueryを使ってファイルをアップロードしたい

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>

  <script type="text/javascript">
    $(document).ready(function(event) {
      $('#form1').submit(function(event) {
        event.preventDefault();
        $.post('post.php',function(data){
           $('#result').html(data);
        });
      });
    });
  </script>  
</head>
<body>
<form id="form1">
  <h3>Please input the XML:</h3>
  <input id="file" type="file" name="file" /><br/>
  <input id="submit" type="submit" value="Upload File"/>
</form>

<div id="result">call back result will appear here</div>

</body>
</html>

そして私のphp 'post.php'

<?php
  echo $file['tmp_name'];
?>

アップロードされたファイル名は返されません。問題は、アップロードされたファイルにアクセスできなかったことです。

前もって感謝します!シブ

4

6 に答える 6

19

基本的にはjQueryを使ってファイルをアップロードしたい

AJAX を使用してファイルをアップロードすることはできません。非表示の iframe を使用するjquery.formプラグインを使用できます。

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script src="http://malsup.github.com/jquery.form.js"></script>
    <script type="text/javascript">
        $(document).ready(function(event) {
            $('#form1').ajaxForm(function(data) {
                $('#result').html(data);
            });
        });
  </script>  
</head>
<body>
<form id="form1" action="post.php" method="post" enctype="multipart/form-data">
    <h3>Please input the XML:</h3>
    <input id="file" type="file" name="file" /><br/>
    <input id="submit" type="submit" value="Upload File"/>
</form>

<div id="result">call back result will appear here</div>

</body>
</html>

フォームの にも注意しenctype="multipart/form-data"てください。

もう 1 つの可能性は、HTML5 ファイル APIを使用することです。これにより、クライアント ブラウザーがサポートしていると仮定してそれを実現できます。

于 2012-06-15T07:56:28.900 に答える
5

いいえ、いいえ、非同期アップロード ファイルには jQuery フォーム プラグインを使用する必要があります。jQuery $.post メソッドでファイルをアップロードすることはできません。ファイルは非表示の iframe でアップロードされます

もう 1 つの方法は、FileAPI/BlobApi で HTML5 アップロードを使用することです。

于 2012-06-15T07:54:58.507 に答える
0

$.post メソッドではファイルを送信できないため、iframe でアップロードしてみてください。

于 2012-06-15T07:56:57.877 に答える
0

jquery uploadify を試すこともできます - http://www.uploadify.com/

于 2012-06-16T11:37:43.830 に答える