实现把文件上传到服务器,文件名/文件大小/文件的描述 上传到数据库
Application.rb代码如下:
# Filters added to this controller apply to all controllers in the application.
# Likewise, all the methods added will be available for all controllers.
class ApplicationController < ActionController::Base
# Pick a unique cookie name to distinguish our session data from others'
session :session_key => '_uploadF_session_id'
def uploadFile(file)
if !file.original_filename.empty?
@filename=getFileName(file.original_filename)
File.open("#{RAILS_ROOT}/public/files/#{@filename}", "wb") do |f|
f.write(file.read)
end
return @filename
end
end
def getFileName(filename)
if !filename.nil?
return filename
end
end
def savefiles(file,description)
@filename=getFileName(file.original_filename)
@filesize=getFileName(file.length)
@uploadfile = Uploadfile.new
@uploadfile.filename=@filename
@uploadfile.filesize=@filesize/1024
@uploadfile.description=description
@uploadfile.save
end
end
upload_controller.rb代码如下:
class UploadController < ApplicationController
def upload
@uploadfile = Uploadfile.new
unless request.get?
i=params[:file].size
for num in (0..i-1)
if filename=uploadFile(params[:file][num])
savefiles(params[:file][num],params[:uploadfile][num])
end
end
end
end
end
upload.rhtml代码:
<script language="javascript">
HTMLElement.prototype.insertAdjacentHTML=function(where, html)
{
var e=this.ownerDocument.createRange();
e.setStartBefore(this);
e=e.createContextualFragment(html);
switch (where)
{
case 'beforeBegin': this.parentNode.insertBefore(e, this);break;
case 'afterBegin': this.insertBefore(e, this.firstChild); break;
case 'beforeEnd': this.appendChild(e); break;
case 'afterEnd':
if(!this.nextSibling) this.parentNode.appendChild(e);
else this.parentNode.insertBefore(e, this.nextSibling); break;
}
}
function addText() {
var str ='<input id="file1" name="file[]" size="30" type="file" /></br> <input type="text" id="uploadfile_description" name="uploadfile[]"></br>';
document.getElementById('MyFile').insertAdjacentHTML("beforeEnd",str);
}
</script>
<%=start_form_tag ({:action=>"upload"},:multipart=>true )%>
<div id="MyFile">
<input id="file" name="file[]" size="30" type="file" /></br>
<input type="text" id="uploadfile_description" name="uploadfile[]"></br>
</div>
<input type="button" value="add" onclick="addText()"/>
<input style="cursor:pointer" type="submit" value="upload"/>
<%=end_form_tag%>
分享到:
相关推荐
可实现多文件的同时上传,控制文件的格式,数量,同时兼容IE6,7,firefox,易于扩展
rails_kindeditor将帮助您的rails应用程序与kindeditor集成,包括图像和文件上传。 安装及使用 将此添加到您的Gemfile gem 'jquery-rails' gem 'rails_kindeditor' 注意:Rails 5.1已从默认设置中删除了对jQuery...
一个简单的 ruby on rails 应用程序。 允许用户使用用户名、密码和头像创建帐户。 登录后,用户可以将照片上传到他们的帐户并在照片中标记其他用户。 安装和使用 运行 Postrges 服务器 克隆或下载此存储库并 cd ...
人脸识别研究我在研究 Ruby on Rails 中的人脸识别时发现的所有文件。 最终项目包括: Flash 前端用于拍照、裁剪和压缩 (jpg) 并将其上传到后端。 Ruby on Rails 后端OpenCV 通过 Python 包装器。 我用 ruby 的...
与支持标准HTML表单文件上传的任何服务器端平台(PHP,Python,Ruby on Rails,Java,Node.js,Go等)一起使用。 演示版 产品特点 多文件上传: 允许一次选择多个文件并同时上传。 拖放支持: 允许通过从桌面或...
使用Active Storage,Stimulus.js和Dropzone.js进行Ruby on Rails拖放上传本教程是关于使用Ruby on Rails 6.0中的Active Storage使用Stimulus.js和Dropzone.js从头开始创建拖放式上传体验。目的这次体验的目标是引入...
CarrierWave该gem提供了一种简单且极为灵活的方式来从Ruby应用程序上传文件。 它与基于Rack的Web应用程序(例如Ruby on Rails)一起很好地工作。 信息RDoc文档av CarrierWave该gem提供了一种简单且极为灵活的方式来...
而不是使用发送CSS样式的电子邮件,没有带有的麻烦使用架构和路线信息对Rails类进行使用和在开发环境中进行性能检查使用dotenv加载环境变量主动作业队列适配器的Sidekiq默认载波文件上传(开发,
具有多文件上传、拖拽、进度条和图像预览功能的文件上传插件,支持跨域、分块、暂停恢复和客户端...可与任何服务端平台(如PHP、Python、Ruby on Rails、Java、Node.js、Go等)一起使用,支持标准的HTML表单文件上传。
一个Ruby on Rails应用程序,用于上传模因,存储您的收藏集,通过主题标签搜索其他模因,并且可以根据需要将模因设为私有。 一个演示项目。 除其他外,它使用: Carrierwave和RMagic上传图像; Devise and Pundit...
概述jQuery Upload File插件提供了带有进度条的多个文件上传功能,可与支持标准HTML表单文件上传功能的任何服务器端平台(Google App Engine,PHP,Python,Ruby on Rails,Java等)一起使用。演示版文献资料
而不是使用发送CSS样式的电子邮件,没有带有的麻烦使用架构和路线信息对Rails类进行使用和在开发环境中进行性能检查使用dotenv加载环境变量主动作业队列适配器的Sidekiq默认载波文件上传(开发,
文件上传控件支持多个文件选择,拖放支持,进度条,验证和预览图像,音频和视频的jQuery插件。...支持标准的HTML表单文件上传和任何服务器端平台(谷歌应用程序引擎,PHP,Python和Ruby on Rails的,Java等)。
用于RailsHTML5文件上传器这个gem使用来上传文件。安装在Gemfile中: gem 'rails-uploader'在航线上: mount Uploader :: Engine => '/uploader' 迁移ActiveRecord: $ bundle exec rails g uploader:install用法...
Ruby on Rails 资产 Rails 5中的自定义字体 快取 在测试中禁用缓存 装饰工 Disposable :: Twin中的JSON字段 弹性搜索 耐嚼 文件附件工具 神社 神社直接上传到s3 神社直接上传到s3(has_many) 记录中 在...
该课程称为 Internet Programming,我们主要在其中使用 HTML、JS 和 CSS 研究了 Ruby on Rails。 FirstSight 是一个简单的在线约会网络应用程序,用户可以通过过滤搜索找到匹配项,还可以通过消息与其他用户交流。 ...
20周内有20个Web应用程序 您好,欢迎来到我的20挑战20资料库。 此仓库将包含在此20周的视频系列过程中...•第14周-快速迭代–通过在Ruby On Rails中使用Rspec TDD减少错误的发生6 影片教学 博客教程 •第15周-使用Axio
总览一个由在后端启动的多部分上传器。 的接口,用于通过URL转换资产。 Filestack Picker-用于Web的上传小部件,它集成了十几个云提供商,并提供了上传前的图像编辑。安装将此行添加到您的应用程序的Gemfile : gem ...
它使用Ruby on Rails,后端使用PostgreSQL数据库,前端使用React.js和Redux。 特征 使用RESTful API上传,编辑,删除和查看曲目 创建歌曲并将其添加到播放列表 连续播放曲目 评论曲目 查看每个曲目的播放计数 搜索...