0

これは pandastream の pandauploader です。AJAX経由で送信したいことを除いて。これを変換する方法を知っている人はいますか?

:javascript
  $("#returned_video_id").pandaUploader(#{Panda.signed_params('post', "/videos.json", :profiles => 'f1eb0fe2406d3fa3530eb7324f410789').to_json}, {
    onsuccess: function(){
      $(".opened_photo").fadeTo(200, 0, function() {
        $(".opened_photo").hide();
        $(".media_lib").fadeIn();
      });
    },
    upload_progress_id: "upload_progress",
    allowed_extensions: ['AAC', 'AVI', '3GP', 'FLV', 'MOV', 'MP3', 'MP4', 'MPEG', 'OGG', 'WAV', 'WEBM', 'WMA', 'WMV',
      'aac', 'avi', '3gp', 'flv', 'mov', 'mp3', 'mp4', 'mpeg', 'ogg', 'wav', 'webm', 'wma', 'wmv']
  });
4

1 に答える 1

1

multipart/form-dataXMLHttpRequest 経由でファイルのアップロードを送信することはできません。これは、要求本文が常に UTF-8 としてエンコードされた文字列として送信されるためです。生のバイナリを送信することはできません。

それを期待するカスタム アップロード レシーバーを作成する場合は、base-64 などのスキームを使用してテキスト内のファイル コンテンツをエンコードできます。ただし、これによりアップロードが大きくなり (したがって遅くなります)、いずれにせよ、JavaScript からファイルを読み取ることができるのは、新しいFile APIをサポートするブラウザーのみです。

「pandastream」についてはわかりませんが、通常、ページのリロードを伴わない HTML ファイルのアップロードは、 を指すフォームを投稿することによって行われtargetます<iframe>

(ちなみに、allowed_extensionsこれはあまり良い考えではありません。Windows 以外のプラットフォームでは、ケースの可能性の欠落やその他の可能性のある拡張子の欠落は別として、ファイルタイプは拡張子とは何の関係もない場合があります。)

于 2010-11-11T20:07:04.867 に答える