0

HTMLフォームから.csvファイルを取得し、すべてのデータを解析する必要があります。

現在、rubyスクリプトでCSV gemを使用してローカルファイルを解析し、次のコードを使用してPardotフォームハンドラーに投稿しています。

require 'net/http'
require 'uri'
require 'csv'

uri = URI('<form handler url>')

CSV.foreach("<csv file location>", :headers => :first_row) do |row|
  res = Net::HTTP.post_form(uri,    'city' => row['city'],
                                'state' => row['state'],
                                'zip' => row['zip'],
                                'country' => row['country'],
                                'phone' => row['phone'],
                                'fax' => row['fax'],
                                'website' => row['website'],
                                'first_name' => row['first_name'],
                                'last_name' => row['last_name'],
                                'job_title' => row['job_title'],
                                'Company' => row['Company'],
                                'leadtype' => row['leadtype'],
                                'tradeshow_attended' => row['tradeshow_attended'],
                                'industry' => row['industry'],
                                'email' => row['email'],
                                'boothsize' => row['boothsize'],
                                'company' => row['company'],
                                'source' => row['source'],
                                'address_one' => row['address_one'],
                                'address_two' => row['address_two']
                                )
end

これで、URLのテキスト入力とcsvファイルのファイルアップロードを含む単純なフォームでSinatraサイトを作成しました。

私がやりたいのは、CSVファイルのデータを上記のスクリプトにプルすることです。

これが私のフォームです:

<form action="" enctype="multipart/form-data" method="post">
                <p>
                    <label>Form Handler URL</label><input name="url" type="text"/>
                </p>
                <p>
                    <label>Please specify a file</label>
                    <input type="file" name="datafile">
                </p>
                <div>
                    <input type="submit" value="Submit">
                </div>
            </form>

を使用してファイル情報を取得できます

params[:datafile]

このフォームからアップロードされたファイルのテキストを取得するにはどうすればよいですか? ファイルはサーバーに保存されません。

4

1 に答える 1

3

そのため、ファイルはすでにサーバーに保存されています(一時ファイルは一時ファイルオブジェクトとして保存されていますが)。:tempfileparams-hashからアクセスできます。

content = params[:datafile][:tempfile].read
于 2012-07-26T15:36:38.117 に答える