snipplrCallback({"id":21604,"title":"rails-file-upload----ruby-on-rails-2","source":"
  1. source of file model *<\/span>DataFile.rb<\/span>*<\/span> \/<\/span> \u00d0\u0161\u00d0\u00be\u00d0\u00b4 \u00d0\u00ba\u00d0\u00bb\u00d0\u00b0\u00d1\u0081\u00d1\u0081\u00d0\u00b0 DataFile.rb<\/span>, \u00d0\u00ba\u00d0\u00be\u00d1\u201a\u00d0\u00be\u00d1\u20ac\u00d1\u2039\u00d0\u00b9 \u00d0\u00bd\u00d1\u0192\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d1\u0081\u00d0\u00be\u00d0\u00b7\u00d0\u00b4\u00d0\u00b0\u00d1\u201a\u00d1\u0152 \u00d0\u00b2 \u00d0\u00bf\u00d0\u00b0\u00d0\u00bf\u00d0\u00ba\u00d0\u00b5 models<\/div><\/li>
  2.  <\/div><\/li>
  3.  <\/div><\/li>
  4. require<\/span> 'rutils'<\/span><\/div><\/li>
  5.  <\/div><\/li>
  6. def<\/span> self<\/span>.save<\/span>(<\/span>upload)<\/span><\/div><\/li>
  7. spl = upload[<\/span>'datafile'<\/span>]<\/span>.original_filename<\/span>.split<\/span>(<\/span>'.'<\/span>)<\/span><\/div><\/li>
  8. ext = spl[<\/span>spl.length<\/span>-<\/span>1<\/span>]<\/span><\/div><\/li>
  9.  <\/div><\/li>
  10. name = File<\/span>.basename<\/span>(<\/span>upload[<\/span>'datafile'<\/span>]<\/span>.original_filename<\/span>)<\/span>.gsub<\/span>(<\/span>\/<\/span>.#{ext}\/,'').dirify<<'.'<<ext <\/span><\/div><\/li>
  11.  <\/div><\/li>
  12. directory = "htdocs\/images"<\/span><\/div><\/li>
  13. # create the file path<\/span><\/div><\/li>
  14. path = File<\/span>.join<\/span>(<\/span>directory, name)<\/span><\/div><\/li>
  15. # write the file<\/span><\/div><\/li>
  16. File<\/span>.open<\/span>(<\/span>path, "wb"<\/span>)<\/span> {<\/span> |<\/span>f|<\/span> f.write<\/span>(<\/span>upload[<\/span>'datafile'<\/span>]<\/span>.read<\/span>)<\/span> }<\/span><\/div><\/li>
  17. return<\/span> name<\/div><\/li>
  18. end<\/span><\/div><\/li>
  19.  <\/div><\/li>
  20.  <\/div><\/li>
  21.  <\/div><\/li>
  22. -----------------------------<\/span><\/div><\/li>
  23. uploading form<\/span> view \/<\/span> \u00d1\u201e\u00d0\u00be\u00d1\u20ac\u00d0\u00bc\u00d0\u00b0 \u00d0\u00b2\u00d1\u2039\u00d0\u00b3\u00d1\u20ac\u00d1\u0192\u00d0\u00b7\u00d0\u00ba\u00d0\u00b8 \u00d1\u201e\u00d0\u00b0\u00d0\u00b9\u00d0\u00bb\u00d0\u00b0<\/div><\/li>
  24.  <\/div><\/li>
  25. <<\/span>form<\/span> action="\/anycontrooller\/upload_action"<\/span> enctype="multipart\/form-data"<\/span> method="post"<\/span>><\/span><\/div><\/li>
  26. <<\/span>p><<\/span>input<\/span> id="upload_datafile"<\/span> name="upload[datafile]"<\/span> size<\/span>="30"<\/span> type="file"<\/span> \/><\/<\/span>p><\/span><\/div><\/li>
  27. <<\/span>input<\/span> name="commit"<\/span> type="submit"<\/span> value="Upload"<\/span> \/><\/span><\/div><\/li>
  28. <\/<\/span>form><\/span><\/div><\/li>
  29.  <\/div><\/li>
  30. ---------------------------------<\/span><\/div><\/li>
  31. \u00d0\u0178\u00d1\u20ac\u00d0\u00b8\u00d0\u00bd\u00d0\u00b8\u00d0\u00bc\u00d0\u00b0\u00d1\u017d\u00d1\u2030\u00d0\u00b8\u00d0\u00b9 \u00d0\u00ba\u00d0\u00be\u00d0\u00bd\u00d1\u201a\u00d1\u20ac\u00d0\u00be\u00d0\u00bb\u00d0\u00bb\u00d0\u00b5\u00d1\u20ac \/<\/span> receiving controller<\/div><\/li>
  32.  <\/div><\/li>
  33. def<\/span> upload<\/div><\/li>
  34.  <\/div><\/li>
  35. begin<\/span><\/div><\/li>
  36. post = DataFile.save<\/span>(<\/span>params[<\/span>:upload<\/span>]<\/span>)<\/span><\/div><\/li>
  37. render<\/span> :text<\/span> =><\/span>'\u00d0\u00a4\u00d0\u00b0\u00d0\u00b9\u00d0\u00bb \u00d0\u00b1\u00d1\u2039\u00d0\u00bb \u00d1\u0192\u00d1\u0081\u00d0\u00bf\u00d0\u00b5\u00d1\u02c6\u00d0\u00bd\u00d0\u00be \u00d0\u00b2\u00d1\u2039\u00d0\u00bb\u00d0\u00be\u00d0\u00b6\u00d0\u00b5\u00d0\u00bd \u00d0\u00bf\u00d0\u00be\u00d0\u00b4 \u00d0\u00b8\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d0\u00b5\u00d0\u00bc <br \/>"<b>'<\/span><<<\/span>post.to_s<\/span>+<\/span>'<\/b>"'<\/span><\/div><\/li>
  38. rescue<\/span><\/div><\/li>
  39. render<\/span> :text<\/span> =><\/span>'error'<\/span><\/div><\/li>
  40. end<\/span><\/div><\/li>
  41.  <\/div><\/li>
  42. end<\/span><\/div><\/li><\/ol><\/pre>","link":"https:\/\/snipplr.com\/view\/21604\/rails-file-upload----ruby-on-rails-2"});