/ Published in: Rails
Можно выкладывать даже файлы, Ñодержащие кириллицу в названии. Они будет подвергнуты транÑлитерации, пробелы и другие небезопаÑные Ñимволы будут заменены на "_".
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
source of file model *DataFile.rb* / Код клаÑÑа DataFile.rb, который нужно Ñоздать в папке models require 'rutils' def self.save(upload) spl = upload['datafile'].original_filename.split('.') ext = spl[spl.length-1] name = File.basename(upload['datafile'].original_filename).gsub(/.#{ext}/,'').dirify<<'.'<<ext directory = "htdocs/images" # create the file path path = File.join(directory, name) # write the file File.open(path, "wb") { |f| f.write(upload['datafile'].read) } return name end ----------------------------- uploading form view / форма выгрузки файла <form action="/anycontrooller/upload_action" enctype="multipart/form-data" method="post"> <p><input id="upload_datafile" name="upload[datafile]" size="30" type="file" /></p> <input name="commit" type="submit" value="Upload" /> </form> --------------------------------- Принимающий контроллер / receiving controller def upload begin post = DataFile.save(params[:upload]) render :text =>'Файл был уÑпешно выложен под именем <br />"<b>'<<post.to_s+'</b>"' rescue render :text =>'error' end end