- 浏览: 207847 次
- 性别:
- 来自: 绍兴
文章分类
最新评论
-
112703013:
你好, 想问个问题 就是我这边上传一个zip文件 大概有100 ...
rails文件上传下载和删除 . -
chen_miao:
qplovechinese 写道 很好!
3q
simple jQuery date-picker plugin 使用 -
qplovechinese:
很好!
simple jQuery date-picker plugin 使用
Model中的部分:
class SystemUploadfile < ActiveRecord::Base
Region = ["北京","西安"]
File_extname = [".rar",".7z",".zip"]
File_target = "public/files"
cattr_accessor :per_page
@@per_page = 10
validates :title,:presence=>true
validates :area,:presence=>true
validates :file_name,:presence=>true
validates :file_url,:presence => true
validates_format_of :file_url,
:with => %r{/.(rar|zip|7z)}i
def set_file_values(file_url,file_name)
self.file_url = file_url
self.file_name = file_name
end
def add_download_count
self.counts += 1
self.save
end
def get_file_path
return SystemUploadfile::File_target+"/"+ self.file_url
end
#删除文件
def delete_file
file_path = File.join(Rails.root,SystemUploadfile::File_target,self.file_url)
if File.exist?(file_path)
File.delete(file_path)
end
end
end
Action中的部分如下:
class SystemUploadfilesController < ApplicationController
def index
@search = SystemUploadfile.search(params[:search]).order('id')
@system_uploadfiles = @search.paginate(:page => params[:page],:per_page => SystemUploadfile.per_page)
end
def new
@system_uploadfile = SystemUploadfile.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @system_uploadfile }
end
end
def create
#如果说什么也没有接收到
if request.get?
@system_uploadfile = SystemUploadfile.new
flash.now[:notice] = "文件上传失败"
render :action => "new"
else
@system_uploadfile = SystemUploadfile.new(params[:system_uploadfile])
#获取上传的文件
uploaded_file = params[:system_uploadfile][:file_url]
if_succ,filepath = upload_file(uploaded_file,SystemUploadfile::File_extname,SystemUploadfile::File_target)
if if_succ
@system_uploadfile.set_file_values(filepath, uploaded_file.original_filename)
if @system_uploadfile.save
redirect_to system_uploadfiles_path,:notice => "文件上传成功"
else
render :action => "new"
end
else
flash.now[:notice] = filepath
render :action => "new"
end
end
end
def download
@system_uploadfile = SystemUploadfile.find_by_id(params[:id])
if @system_uploadfile == nil
redirect_to system_uploadfiles_path, :notice => '没有记录,下载失败!'
else
file_path = @system_uploadfile.get_file_path
if File.exist?(file_path)
#@system_uploadfile.add_download_count
#send_file file_path,:disposition => 'inline'
io = File.open(file_path)
io.binmode
send_data(io.read,:filename => @system_uploadfile.file_name,:disposition => 'attachment')
io.close
else
redirect_to system_uploadfiles_path, :notice => '文件不存在,下载失败!'
end
end
end
def destroy
@system_uploadfile = SystemUploadfile.find_by_id(params[:id])
if @system_uploadfile == nil
flash.now[:notice] = '该记录已被删除'
redirect_to system_uploadfiles_path
else
@system_uploadfile.delete_file
@system_uploadfile.destroy
respond_to do |format|
format.html { redirect_to(system_uploadfiles_path) }
format.xml { head :ok }
end
end
end
end
Form:html部分
<% form_for( @system_uploadfile,:html=>{:multipart => true}) do |f| -%>
<%= f.label :title, "标题:" %>
<br />
<%= f.text_field :title%>
<em style="color:red;"><%= f.error_message_on :title %></em>
<br />
<%= f.label "区域" %>
<%= f.select :area,options_for_select(SystemUploadfile::Region) %>
<br></br>
选择上传文件:<br/>
<%= file_field(:system_uploadfile, :file_url)%>
<em style="color:red;"><%= f.error_message_on :file_url %></em>
<br/>
<%= f.submit "提交", :disable_with => '提交中...'%>
<% end -%>
程序中用到的一个方法:
def upload_file(file,extname,target_dir)
if file.nil? || file.original_filename.empty?
return false,"空文件或者文件名错误"
else
timenow = Time.now
filename = file.original_filename #file的名字
fileloadname = timenow.strftime("%d%H%M%S")+filename #保存在文件夹下面的上传文件的名称
if extname.include?(File.extname(filename).downcase)
#创建目录
#首先获得当前项目所在的目录+文件夹所在的目录
path = Rails.root.join(target_dir,timenow.year.to_s,timenow.month.to_s)
#生成目录
FileUtils.makedirs(path)
File.open(File.join(path,fileloadname),"wb") do |f|
f.write(file.read)
return true,File.join(timenow.year.to_s,timenow.month.to_s,fileloadname)
end
else
return false,"必须是#{extname}类型的文件"
end
end
end
from:http://blog.csdn.net/xuchao111/article/details/6333605
发表评论
-
require,include,load,extend的用途和区别
2013-03-01 22:47 928这四个方法还是很好玩很有用,也是比较容易混的。 ... -
ruby 标准类型总结
2013-02-01 16:45 1186一、数字 Ruby支持整数 ... -
RMagick 简介
2013-01-18 20:38 1352RMagick 是一个将 Ruby 语言绑定到 ImageM ... -
ARP欺骗功能
2013-01-12 22:47 1088一、设置前准备 当使用了防止ARP欺骗功能(IP和 ... -
淘宝开源编辑器KISSY Editor
2013-01-04 16:46 2293KISSY Editor 是开源项目 KISSY ... -
Rails创建定时任务
2012-12-10 10:21 1750Task & Rexcel 最终生成的报 ... -
Ruby on Rails页面缓存 实践
2012-12-05 11:02 1011三种方式 Page Caching, Action ... -
rails缓存学习
2012-11-27 16:38 1778FORM:http://kenbeit.com/tag/ ... -
Ruby on Rails 简单页面缓存
2012-11-16 17:28 1155三种方式 Page Caching, Action Ca ... -
Ruby写入Excel文件 插件方法
2012-11-01 16:21 1463spreadsheet插件(主要是excel生成写入数 ... -
RUBY操作EXCEL文件
2012-10-31 17:05 1327使用ruby来操作excel文 ... -
Ruby on Rails的session和session存储方案
2012-10-18 17:42 1199session:页面间的信息保存手段。使用:赋值 ses ... -
Ruby程序打包成可执行文件的工具 - RubyScript2Exe
2012-09-19 21:28 2210RubyScript2Exe能够将你的Ruby应用程序转成一个 ... -
rails中实现kindeditor中的图片上传
2012-09-14 16:10 1584FROM: http://blog.sina.co ... -
js 彷excel 键盘上下左右移动
2012-09-03 19:11 2959思路假设初始坐标为(0,0)首先要算出表格的最大最小坐标 即( ... -
ruby Hash 总结
2012-08-31 18:51 62051. 如何创建Hash? x = Hash.newx = { ... -
ruby inject,循环计算优化
2012-08-27 16:51 1268From:http://blog.jayfields.com/ ... -
jquery 图表插件highcharts & highstock
2012-08-23 14:43 11079Highcharts是纯JavaScript编写的图表库,提 ... -
rails or ruby 中 fields_for 提交方式
2012-08-20 20:10 1574Project这个Model的new表单,我们需要在创建Pro ... -
Rails中导出excel的快速简便的方法
2012-07-31 15:51 1048controller def to_e ...
相关推荐
rails_kindeditor将帮助您的rails应用程序与kindeditor集成,包括图像和文件上传。 安装及使用 将此添加到您的Gemfile gem 'jquery-rails' gem 'rails_kindeditor' 注意:Rails 5.1已从默认设置中删除了对jQuery...
它展示了如何在 Ruby on Rails 应用程序中集成和 。/!\ 警告文件config/secrets.yml已经上传到这个 repo 并且修改了.gitignore文件以允许这样做。 如果您将此存储库用作应用程序的起点,请记住从版本控制中删除该...
jQuery File Upload 是一个Jquery文件上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。 官网链接:...
条目器AngularJS的Rails脚手架示例安装耙数据库:创建耙数据库:迁移耙db:种子耙式凉亭:安装滑轨打开浏览器并享受;)测验规格必须使用一个Item模型来实现一个项目,该模型具有2个字段:名称和图片(图片文件)。 ...
jQuery File Upload 是一个 jQuery 图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。 特征: 1、多文件上传: 允许一次选择...
运行bundle exec rake asset:precompile之后,您的资产将同步到S3存储桶,可以选择删除未使用的文件,而仅将其需要的文件上传。 它最初是构建的,旨在在Heroku上工作,但可以在任何平台上工作。 升级吗? 从1.x升级...
使用RESTful API上传,编辑,删除和查看曲目 创建歌曲并将其添加到播放列表 连续播放曲目 评论曲目 查看每个曲目的播放计数 搜索用户,曲目和播放列表 在其页面上查看用户的所有曲目和播放列表 安全的帐户创建和登录...
功能包括: Rails 内置的自定义用户身份验证系统,用于注册/登录能够上传要存储在 AWS S3 上的音乐文件(M4A、Mp3) 关注用户并让他们上传的歌曲出现在您的流中自定义 AJAX 请求“探索”并从数据库中提取 5 个随机...
blackchestnut.github.io 开发者须知 内容 ...ApplicationHelper和布局/应用程序 服务 使用密码进行简单身份验证 解析其他时区中的时间并转换为当前时区 观看次数 枚举选择中的人性化键 表单字段有错
File-Drop 是一个 AJAX 驱动的文件上传小部件,具有以下功能: 用户友好的界面 多个拖放文件上传 能够设置上传文件夹、允许的文件类型和最大上传大小 自定义上传回调并可以拦截文件上传以进行额外处理 允许上传最大...
直接上传和后台也具有性能优势,因为您的应用程序不必接收文件上传(因为文件直接上传到S3),并且Web工作人员不会被处理,存储或删除所阻止。 执行 该演示可以将文件直接上传到S3(生产中的默认设置),也可以将...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
运行bundle exec rake asset:precompile之后,您的资产将同步到S3存储桶,可以选择删除未使用的文件,而仅将其需要的文件上传。 它最初是构建的,旨在在上工作,但可以在任何平台上工作。 升级吗? 从1.x升级? ...
上载的文件可以存储在文件系统上,也可以存储在S3上(通过Paperclips内置的S3支持)。目标 将CKEditor源代码保留在您的项目之外。 合理的默认值。 我们不希望用户插入桌子,表情符号或其他琐事,只会破坏精心设计的...
访客和用户可以查看和购买由管理员上传的一系列列出的产品。 Apple M1机器的其他步骤 确保您正在运行Ruby 2.6.6( ruby -v ) 安装ImageMagick brew install imagemagick imagemagick@6 --build-from-source 删除...
自述 这篇文章和教程提供了如何使用 Ruby/Rails 构建基本的创建/读取/更新/删除 (CRUD) 应用程序的背景知识。 这篇文章的重点是如何设置文件附件系统并将其投入生产,使用来自 Thoughtbot、Heroku 和 Amazon 为 ...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
用户可以上传可以用连续播放器播放的音频文件,该文件在使用站点时始终会运行。 用户还可以通过选择其播放器的相应区域(页面上的播放器或窗口底部的连续播放器)来直接更改当前曲目的时间。 选择要播放的曲目的...
部署说明:task / assests文件夹中已经存在一个.dat文件,但要使用其他文件进行测试,请注释掉create_league_table.rake文件,删除旧的.dat文件,上传一个新文件,然后运行rake db:reset 。 完成后,取消注释...
此实现包含以下功能: 将音频文件上传到 Rails 服务器通过使用播放列表管理音频文件播放列表管理(即编辑名称、删除) 音频播放通过拖放重新排列播放队列这是使用以下方法实现的: HTML5 CSS3 JavaScript jQuery ( ...