用户注册时上传头像的实现

来源:互联网 发布:java实现crf实体识别 编辑:程序博客网 时间:2024/05/17 03:26

1.def reg 2. if request.get? 3. @user = User.new 4. else 5. @user = User.new(params[:user]) 6. if (@user.photo.original_filename != nil && @user.photo.original_filename != "") 7.# 文件上传 8. if uploadFile(@user) 9.# 保存到数据库 10.# if @user.save 11.# end 12. end 13. end 14. redirect_to(:action => :list) 15. end 16. end 17. 18. private 19. def uploadFile(user) 20. @file_name=getFileName(user.photo.original_filename) 21. @user_name = user.user_name 22. if !File.exist?("#{path}/#{@user_name}") 23. makeDir("/#{@user_name}/account") 24. end 25. File.open("#{path}/#{@user_name}/account/#{@file_name}", "wb") { |f| f.write(user.photo.read) } 26. end 27. 28. def getFileName(filename) 29. if !filename.nil? 30. require 'uuidtools' 31. uuid_str = UUID.random_create.to_s 32. uuid_str+= filename[//.(gif|jpg|png|JPG|GIF|JPEG)$/] 33. end 34. end 35. 36. def path 37. "#{RAILS_ROOT}/public/user" 38. end 39. 40. def makeDir(dirPath) 41. str = dirPath.scan(///[A-Za-z0-9]*/) 42. temp_path = path 43. str.each do 44. |x| dirname = x.sub(////,"") 45. temp_path += "/"+dirname 46. Dir.mkdir(temp_path) 47. end 48. end