2009-07-20 7 views
2

開始する前に、私のウェブサイトではないウェブサイトを更新しなければならないことに注意してください。私がこれをやろうとすれば、私は違うやり方をするだろう。PHPを使用してajax経由でファイルをアップロードする問題

私は多くのフィールドを持つフォームを持つcakephpアプリケーションを持っています。このフォームでは、ファイルをブラウズして非同期で保存できます。ここではどのように行うのです:

$this->FileUpload->save($this->data) 

が、これは常にfalseを返し、「いいえアップロードが渡されていない」:

<input type="file" name="data[FileUpload][file]" id="myFileToUpload"> 
<a id="pickFile" href="#">Upload&nbsp;Now</a> 

<script type="text/javascript"> 
    $('#pickFile').click(function (e) { 
     e.preventDefault(); 
     $.post(
      "/admin/FileUploads/saveFromFlash/<?php e($session->id()) ?>", { 
      data: $("#myFileToUpload").val() 
     }, function (data) { 
      $("#returnedContentFromAjax").html(JSON.stringify(data)); 
     }, 
      "json"); 
    }); 
</script> 

主に呼ばれる関数は、これを行います。ここでは、エラーメッセージを作成する行は次のとおりです。

if (!isset($this->data['FileUpload']['file'])) { 
     $this->setUploadError('No upload passed'); 
    return false; 
} 

私はこれがあると思いますどのようにAJAXを経由して「[ 『するFileUpload』] [ 『ファイル』]の$ this - >データ」これを送信する...見当もつかない私はここに渡すためにどのようなオブジェクトを知らないので、重要な問題:

{ data:$("#myFileToUpload").val() }, 

私はそれにしてきたすべての夜は、任意の助けを大幅に要約する

+2

#myFileToUploadはINPUTタイプ= "FILE"エレメントですか?あなたはjavascriptからファイルの内容にアクセスすることはできません。この質問を見て:http://stackoverflow.com/questions/543926/is-it-possible-to-ajax-a-file-upload – russau

+0

ああ...まあそれは私のための終わりです^^ありがとうAnswer – marcgg

+0

ファイルアップロードが別の形式であっても、フォームプラグインを使用できますか? – marcgg

答えて

3

をいただければ幸いです:JavaScriptはアクセスできません。アップロードのために選択されたファイルの内容。ファイルのアップロードのための「AJAX効果」を取得して

この記事のお得な情報:Is it possible to use Ajax to do file upload?

+0

アップローダがすでにフォームに入っていても、jqueryフォームのようなものを使用することは可能ですか? – marcgg

+1

はい、jqueryフォームは既存のフォームの動作を取得し、そのフォームに投稿します。コードサンプルにファイルアップロードの例があります:http://malsup.com/jquery/form/#code-samples – russau

+0

ありがとう、私はこれを実装しようとします – marcgg

関連する問題