私は「新しいブログ」フォームを作成しています。フォームにいくつかの写真アップロードフィールドがあります。 AJAXを使用して投稿リクエストを送信し、写真をアップロードし、写真のURLを返信して「新しいブログ」フォームに表示する方法はありますか?私のバックエンドはレール上のルビーで書かれています。AJAXリクエストと返信
私は意味があることを望みます!どんな助けでも大いに感謝しています!
おかげで、 アレックス
私は「新しいブログ」フォームを作成しています。フォームにいくつかの写真アップロードフィールドがあります。 AJAXを使用して投稿リクエストを送信し、写真をアップロードし、写真のURLを返信して「新しいブログ」フォームに表示する方法はありますか?私のバックエンドはレール上のルビーで書かれています。AJAXリクエストと返信
私は意味があることを望みます!どんな助けでも大いに感謝しています!
おかげで、 アレックス
はい、それは少し複雑です。問題は、AJAX経由でアップロードされたファイルを送信することができないということですが、ほとんどの人が使用する簡単な回避策があります。
これは動作方法です。写真を目に見えないiFrameにアップロードします。このiframeをアップロードフォームのターゲットとして設定すると、ユーザーはページをリロードせずにフォームを送信できます。
例:iFrameを非表示に
<iframe id="upload"></iframe>
<%= form_for @photo, :html => { :multipart => true, :id => 'photo_upload_form', :target => 'upload' }, :url => photos_path do |f| %>
<div class="field">
<%= f.label :image, 'Upload Photo' %>
<%= f.file_field :image %>
</div>
<% end %>
...そしてもちろんの使用CSS。私はかつてdisplay: none
でiFrameを隠して問題があったと思うので、私のようなものを使用して画面外に動かす推薦:
#upload { position: absolute; left: -10px; top: -10px; width: 1px; height: 1px; }
最後に、あなたは隠された内部でレンダリングされるビューではJavaScriptを使用することができますiFrameをwindow.parent
経由でアップロードすると、アップロードされた画像を実際にアップロードフォームに表示することができます。
興味深いことに、私は現在同様のことをやっています。写真のフォームをiframeの内側に置くだけで、写真を送信すると、フレームはアップロードされた写真にリダイレクトされます。 写真のURLを送り返すだけではありませんか?例えばexample.com/uploads/test.jpg ??? –
これを実装する方法はいろいろありますが、最も簡単な方法は、完全に隠されたiFrameを1つだけ使用することです。 iFrameのビュー内にJSコードを記述する場合でも、URLを送信してJSを元のビューにする場合も、それはあなた次第です。 –
偉大な、ありがとう、私はそれに行くだろう:) –