2012-02-27 13 views
2

私は単純なファイルのアップロードを試みていますが、それを行うことができません。それらのファイルはすべて イメージの周りに配置されているようです。基本的な.zipファイルのアップロードが欲しいだけです。誰かが私にこれを行う宝石や自分のカスタム アップロードを作成するチュートリアルを教えてもらえますか?何も存在しない場合は、私は自分のファイルのアップロードを作成しますが、その後私は、次の質問に直面していますアップロードしたファイルのパスをデータベースに保存する

質問:私は、データベース内のファイルのパスを保存するにはどうすればよい

ときユーザーはアップロードボタンを押しますか?

形態は、以下から成る:以下

シナリオで

Title box: 
File select box: 
Upload button: 

データベーステーブルは、ちょうど2つの列で構成され、title (Title)とファイルシステム上file's path (FilePath)

ユーザがタイトルを記入し、システム上のファイルをブラウズし、アップロードボタンをクリックすると、ファイルは をthに格納する必要があります電子ディスクは、また、mysqlデータベースへのアップロードのタイトルだけでなく、 別のページで/public/uploads/file1.zip.

に今存在する実際のファイルへのパスを書きながら、私は単純に取得するために、データベースを照会することができ/public/uploads/file1.zipを言うことができますTitleとFilePathを表示します。これは、タイトルと、ユーザーが単にクリックしてダウンロードできるファイルへのリンク/パスを表示します。

次のようにそれがページ上に表示されます。

タイトル - ダウンロード

27日のためにそれほどすなわち会議資料 - 「タイトル」=ユーザーが投稿したファイルのタイトルと「ダウンロード

をダウンロードします"=あなたがクリックできる実際のリンクは、ディスク からファイルを取得し、ダウンロードを開始します。これは、タイトルとファイルへのパスを取得するデータベースからの1つのクエリである必要があります。クエリの 部分は私が行う方法を知っています。これは、そのディレクトリにファイルをアップロードし、特定のファイルのディレクトリをデータベースに格納し、ユーザが提出したタイトルを格納するだけの部分です。

どのような提案、例、リソースがあれば幸いです。御時間ありがとうございます。

答えて

1

rails guidesからuploading filesを読み、CarrierWave READMEを読んでください。基本的には:

# in the model 
mount_uploader :archive, ArchiveUploader, mount_on: :archive_path 

# in the controller action 
@record = YourModel.new(params[:record]) # moves the file from server upload path to CW cache dir 
@record.save # moves the file from CW cache dir to final fs dir, and stores path in mounted_on column 

# in the form 
<%= f.file_field :archive %> 

# in the view 
<%= link_to 'Download', @record.archive_url %> 

ファイルシステムのパスは、マウントするテーブルの列に格納されます。

+0

あるはい、私はこれに出くわしました。しかし、私の質問は、ファイルをCarrierwaveでアップロードし、そのファイルをファイルシステムに保存し、ファイルのパスをデータベースに保存する方法です。返信いただきありがとうございます。 – user1104783

+0

私は答えを編集しました、それは今はっきりしていますか? – clyfe

+0

はい、ありがとうございます。 – user1104783

0

上記のように、carrierwaveは、ファイルをアップロードする方法です。あなたが望むように、carrierwaveはファイルをディスクに保存し、dbにパスを保存します。

そのreadmeファイル自体は、あなたがそれを設定すると詳細のほとんどは

をそれを設定する必要があり、右の非常に簡単で、それはレール2.xおよび3.xのと連携し、すべてのほとんど続き

は素敵screen cast you may want to check

HTH

関連する問題