`
yezi
  • 浏览: 279114 次
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
用户在注册是可以上传头像,系统将按照用户的注册名创建其图片目录,并将用户上传的图片重新命名,并上传到创建的目录中。

这里涉及到以下几个环节:
1、上传图片
2、用唯一字符串命名图片名称,例如:uuid
3、创建用户目录

下面是基本的代码:
def reg
    if request.get?
      @user = User.new
    else
      @user = User.new(params[:user])
      if (@user.photo.original_filename != nil && @user.photo.original_filename != "")
#        文件上传
        if uploadFile(@user)
#          保存到数据库
#          if @user.save
#          end
        end
       end
       redirect_to(:action => :list)
    end
  end
  
  private
  def uploadFile(user)   
    @file_name=getFileName(user.photo.original_filename)
    @user_name = user.user_name
    if !File.exist?("#{path}/#{@user_name}")
      makeDir("/#{@user_name}/account")
    end
    File.open("#{path}/#{@user_name}/account/#{@file_name}", "wb") { |f| f.write(user.photo.read) }
  end   
  
  def getFileName(filename)
    if !filename.nil?
      require 'uuidtools'
      uuid_str = UUID.random_create.to_s
      uuid_str+= filename[/\.(gif|jpg|png|JPG|GIF|JPEG)$/]
    end   
  end
  
  def path
    "#{RAILS_ROOT}/public/user"
  end
  
  def makeDir(dirPath)
    str = dirPath.scan(/\/[A-Za-z0-9]*/)
    temp_path = path
    str.each do
      |x| dirname = x.sub(/\//,"")
      temp_path += "/"+dirname
      Dir.mkdir(temp_path)
    end
  end


对于创建用户目录,通过makeDir方法来实现,通过正则匹配到含有"/"的多级目录,并按照"\"的个数进行循环取值,然后通过str.sub替换"/",这样就能得到根据用户填写的注册名的目录名,然后创建相应的目录

对于用户上传的图片的重新命名问题,通过uuid_tools来实现,其实现方法非常简单,将uuidtools.rb添加到Libs目录,然后uuid_str = UUID.random_create.to_s就能得到图片的uuid名称。

上传图片没什么特别的,按照教程做就行。
分享到:
评论

相关推荐

    spring boot用户注册上传头像并在及时页面上显示

    在本项目中,"spring boot用户注册上传头像并在及时页面上显示" 是一个使用Spring Boot框架构建的应用,它展示了如何处理用户注册时的头像上传,并实现在页面上即时显示上传的图片。这个小demo涉及到的技术栈主要...

    jsp+servlet头像上传功能

    在IT行业中,构建一个网页应用,让用户能够上传头像是非常常见的需求。在这个场景下,`JSP(JavaServer Pages)` 和 `Servlet` 是Java Web开发中的关键组件,它们一起用于实现动态网页功能。本篇文章将深入探讨如何...

    支持上传头像的注册

    在开发Web应用时,"支持上传头像的注册"是一个常见的功能需求,它允许用户在创建账户时上传个性化头像。在这个场景中,我们利用了Java Web技术,并结合Spring JDBC来处理数据库操作。以下是实现这一功能涉及的关键...

    基于struts上传头像功能

    在本项目"基于Struts上传头像功能"中,我们关注的核心是利用Struts实现用户头像的上传,并在上传后能够实时更新显示。这个功能对于社交网络、论坛等用户交互性强的网站尤为重要,因为它允许用户个性化自己的在线形象...

    自己写的带有图片上传的用户注册案例

    在本项目中,我们主要探讨的是如何利用SpringMVC、MyBatis以及JSP技术来构建一个具有图片上传功能的用户注册系统。这个系统允许用户在注册时上传个人头像,将其存储到数据库中,从而提供更加个性化的用户体验。下面...

    Java 实现头像的剪切和上传功能

    在Java开发中,头像的剪切和上传功能是一项常见的需求,特别是在Web应用中,比如社交网络、用户注册等场景。本教程将详细介绍如何使用Java技术栈,结合jQuery ImgCrop库,来实现这一功能。 首先,我们需要理解头像...

    javaWeb头像上传功能

    在用户注册或更新头像时,将文件路径或URL与用户账号关联起来。如果使用关系型数据库如MySQL,可以创建一个字段用于存储这一信息。如果是NoSQL数据库如MongoDB,可以在用户文档中添加一个字段。 此外,考虑到用户...

    SSM用户信息上传图片

    在这个项目中,“SSM用户信息上传图片”主要是实现了一个用户信息展示和图片上传的功能。以下是这个项目涉及到的关键知识点: 1. **Spring框架**:Spring作为核心容器,管理着应用中的对象,包括依赖注入...

    基于 JSP/Servlet 的头像设置功能实现

    例如,当用户提交上传头像的表单时,对应的Servlet会接收到这个请求,读取上传的文件,进行必要的验证(如文件类型、大小检查),然后将新头像保存到服务器的指定位置。 AJAX技术则用于实现页面无刷新更新,提升...

    thinkphp 上传头像

    以上就是使用ThinkPHP框架上传头像的基本流程。在实际项目中,我们还需要考虑错误处理、文件重命名以防止同名覆盖、优化文件存储结构等问题。通过熟练掌握这些知识点,你可以构建稳定可靠的头像上传功能,提升用户...

    7个头像上传插件 PHP

    在IT行业中,尤其是在Web开发领域,头像上传插件是一个常见的需求,特别是在用户注册、个人资料编辑等场景中。PHP作为后端服务器语言,搭配JQuery和JavaScript等前端技术,可以构建出高效、用户友好的头像上传系统。...

    直接上传头像(jsp)

    本教程将深入讲解如何在JSP中实现直接上传头像的功能。 首先,我们需要了解JSP的基本原理。JSP是一种动态网页技术,它允许我们在HTML页面中嵌入Java代码,以实现服务器端的逻辑处理。在处理用户上传文件时,我们...

    带选择头像的用户注册页面

    总之,构建一个带头像选择的用户注册页面在Android开发中涉及到了UI设计、事件处理、图片处理、数据验证、网络通信等多个环节,每个环节都需要仔细考虑和实现,以提供安全、高效且用户友好的体验。在实际开发中,还...

    node+vue实现用户注册和头像上传的实例代码

    Node+Vue实现用户注册和头像上传的实例代码 本篇文章主要介绍了使用 Node 和 Vue 实现用户注册和头像上传的实例代码,具有一定的参考价值。以下是相关知识点的总结: Node 和 Vue 的结合 在本篇文章中,我们使用 ...

    jquery上传头像

    "jquery上传头像"是基于jQuery实现的一种功能,允许用户在网站上上传个人头像。这种功能常见于社交网络、论坛或者个人资料编辑页面,以提供用户个性化体验。 在实现"jquery上传头像"的过程中,主要涉及以下知识点:...

    php上传头像

    注册并上传头像 ``` 这里的`enctype="multipart/form-data"`是必需的,因为我们需要上传文件。 接下来,创建`upload.php`来处理文件上传。PHP提供了`$_FILES`全局数组来存储上传文件的信息。检查文件是否成功...

    Android实现注册登录头像上传等服务器端

    在Android应用开发中,实现用户注册、登录以及头像上传等功能是常见的需求,尤其是在构建社交或者个人信息管理类应用时。这些功能通常涉及到客户端与服务器端的交互,涉及到网络请求、数据序列化、文件处理等多个...

Global site tag (gtag.js) - Google Analytics