ユーザ用ツール

サイト用ツール


alform:alfile

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
alform:alfile [2019/03/03 18:27] – ↷ prog_cgi:alfile から alform:alfile へページを移動しました。 hirohitoalform:alfile [2019/03/12 00:57] (現在) – [フォーム自動生成する場合] hirohito
行 20: 行 20:
   AlFile.new("file1", :required=>true )   AlFile.new("file1", :required=>true )
  
-== htmlタグ生成時追加トリビュト == + 
-  AlFile.new("file1", :tag_attr=>{size:"50"}) +====== ファイルアップロードの特殊性 ====== 
-   + 
-  make_tag()出力 +===== フォームタグの記述 ===== 
-  <input type="file" name="file1" id="file1" size="50">+ 
 +ファイルをップロドするフォームは、enctype="multipart/form-data" でなければなりません。  
 + 
 +  <form name="form1" id="form1" method="post" action="<%=h make_uri(...) %>" enctype="multipart/form-data"> 
 + 
 +===== フォーム自動生成する場合 ===== 
 + 
 +フォーム自動生成する場合は、以下のようにします。 
 + 
 +<code ruby> 
 +@form = AlForm.new( 
 +  AlFile.new( "file1", :label=>"画像ファイル" ), 
 +  ... 
 +
 +@form.tag_attr = { :enctype=>"multipart/form-data" } 
 +</code> 
 + 
 +テンプレート 
 + 
 + 
 +  <%= @form.make_tiny_form(%> 
 + 
 + 
 + 
 +===== アップロードされたファイルの利用 ===== 
 + 
 +アップロードされたファイルは、テンポラリファイルとして保存され、バリデーション後に利用可能になります。 また、スクリプトの終了時に自動的に消去されます。 
 + 
 +  @form.validate() 
 +  @form[:file1][:tmp_name]       # テンポラリファイル名 
 +  @form[:file1][:size]           # ファイルサイズ 
 +  @form[:file1][:content_type]   # コンテンツタイプ (image/jpeg等) 
 + 
 + 
 +===== アップロードされたファイルをそのまま保存する ===== 
 + 
 +アップロードされたファイルを加工などをせず、そのままファイルとして保存する場合に便利なように、以下の手順が用意してあります。 
 + 
 +  @form.widgets[:file1].save_file()   # ファイルの恒久化 
 +  @form[:file1][:saved_name]          # 付与されたランダムファイル名 
 + 
 +保存する場所をあらかじめ指定しておいてから使います。 
 + 
 +  AlFile.dirname = "/PATH/TO/SAVE/DIR" 
 +  @form.validate() 
 +  @form.widgets[:file1].save_file() 
 + 
 +ファイル名をランダムに付与しない(固定のファイル名)場合は、File.link を使います。 
 + 
 +  AlFile.dirname = "/PATH/TO/SAVE/DIR" 
 +  @form.validate() 
 +  File.link( @form.widgets[:file1][:tmp_name], "FILENAME)
  
  
alform/alfile.txt · 最終更新: 2019/03/12 00:57 by hirohito