2011-08-07 29 views
2

ここに私の状況です。私は、1)写真アップロードテンプレート2)写真の詳細テンプレート3)写真テンプレート4)写真ギャラリー5)動的ナビゲーションバーを含む写真管理ページを持っています。もともと、写真アップロードテンプレートは、自分自身に提出されたフォームとして設定され、新しい写真をアップロードするためにcffileを使用しました。これはうまくいきました.jqueryコールバックを追加して、アップロードが成功すると、詳細、写真、ギャラリーコンテナを更新しようとしましたが、フォームが送信されて写真がアップロードされた後、フォームの送信ボタンは実行されません。coldfusion ajax jqueryファイルアップロードが動作しない

そのため、送信ボタンをタイプ「ボタン」に変更し、jquery .ajax()を使用してファイルをアップロードすることにしました。これにより、コールバックを成功させることができます。これまでのajaxメソッドのコードは次のとおりです。

$.ajax({ 
      url: 'Administration/PhotoManagement/uploadPhotos.cfm', 
      type: 'POST',   
      data: { Add: 'add', 
       NewFilename: file_name, 
       shortName: short_name, 
       description: description 
      }, 
      contentType: 'multipart/form-data', 
      success: function(response, status, xhr){ 
        $('#upload').html(response); 
        // refresh gallery, featured pic, details 
        alert('success'); 
       } 
      }, 
      error: function(xhr, status){ 
       alert(status + ' ' + xhr.statusText); 
      }   
     }); 

送信時に、500の内部サーバーエラーが発生します。 Firebugコンソールは、データが正しくポストされたと報告しますが、イメージはアップロードされず、私はcffileの周りにあるtry/catchエラーコードからエラーメッセージを受け取りません。

私はどちらのアプローチにも結婚していません - コールバックが機能するようにすれば、元のアプローチに戻っても問題ありません。助言がありますか?私がアヤックスのアプローチにとどまるべきだと思うなら、あなたは私のエラーを修正しようと勧めますか?

編集:私は、タグの周りに私のtry/catchブロックからエラーを取得していたので、マルチパート/フォームデータ:上記のコードでは、私は種類を追加した

無効なコンテンツの種類:アプリケーション/ X -www-form-urlencoded;文字セット= UTF-8

+0

500エラーの詳細は何ですか?ファイヤーバグやプロキシ(チャールズ)を使って詳細を取得してください。 – Lucas

+0

jQuery ajaxファイルのアップロードプラグインを使ってみましたか? – tsurahman

+0

Lucasさん、職場でプロキシを使用できません。 Firebugは私に500エラーの詳細を与えません。それは? localhostの後に。 "type:multipart/form-data"を削除するとそのエラーは消えますが、私のcffileタグは上記の「無効なコンテンツタイプ」エラーを表示します。 – earachefl

答えて

2

私は少し遅れて相手にだけど、私は、ColdFusionを使用してfileuploader AJAXとして前にこれを使用しました:

http://valums.com/ajax-upload/

あなたがそこにパッケージをダウンロードする場合coldfusionを使用した例です。

javascriptファイルには、 'onComplete'というコールバックメソッド(qq.FileUploaderBasicを検索)を持つ関数があります。そのコールバックメソッドでは、次のように独自のコールバック関数を呼び出します。

uploaderCallBackFunction
onComplete: function(id, fileName, responseJSON) 
    { 
     uploaderCallBackFunction(id, fileName, responseJSON); 
    }, 

は、私が書いた関数です。 JSONをCFCからコールバック関数に渡すこともできます。

+0

ねえリンクは、このいずれかで死んでいるようです。別のコピーがありますか? – Will

+0

私は残念ながらコピーを持っていない@Willが、私は私が(ではないがCFで)首尾よく使用していたより近代的なプラグインをお勧めします:うんhttps://github.com/blueimp/jQuery-File-Upload – AngeloS

+0

私はそのためのCF用のサーバ側を作るに探してきました。最高の選択肢と思われます。とにかくありがとう。 – Will

関連する問題