实现把文件上传到服务器,文件名/文件大小/文件的描述 上传到数据库
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,易于扩展
用于RailsHTML5文件上传器这个gem使用来上传文件。安装在Gemfile中: gem 'rails-uploader'在航线上: mount Uploader :: Engine => '/uploader' 迁移ActiveRecord: $ bundle exec rails g uploader:install用法...
)测验规格必须使用一个Item模型来实现一个项目,该模型具有2个字段:名称和图片(图片文件)。 所有操作应在一页上进行,而无需重新加载该页。 该页面最初显示所有项目(项目)的列表,并具有更改或删除(带有确认...
s3-multipart-stream 使用分段上传 API 将文件上传到 Amazon S3。 它通过将流分成块并同时将这些块上传到 S3 来上传流。 块大小和最大并发上传计数可通过选项哈希进行配置。 每个块上传都记录在一个工作文件中,其...
启用直接文件上传到Amazon S3的功能,并为Rails应用程序提供灵活的模式以异步提取文件。 注意:如果您使用的是Rails 5.2+,则应考虑迁移到Active Storage,因为Rails 6+不会支持此gem。 概述 通过此Rails引擎,您...
jQuery File Upload 是一个 jQuery 图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。 特征: 1、多文件上传: 允许一次选择...
丰富 Rich是CKEditor for Rails 3.2及更高版本的可靠实现。 它包括一个简化的工具栏,简化的对话框和一个自定义文件管理器。 文件管理器也可以与CKEditor分开使用。 目前,Rich与Active Admin,Rails Admin和Vanilla...
这是一个示例 Rails 应用程序,它使用 Javascript canvasResize 插件和回形针 ( ) 来演示如何在上传前实现文件大小调整。 如何在您的项目中实施 要在您的项目中实现“上传前调整文件大小”,请按照以下步骤操作。 ...
载波直接 是从Ruby应用程序上传文件的好方法,但是... 如果要同时上传多个文件,则必须使用JavaScript或Flash上传器。安装安装最新版本: gem install carrierwave_direct 在Rails中,将其添加到您的Gemfile中:
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
此实现包含以下功能: 将音频文件上传到 Rails 服务器通过使用播放列表管理音频文件播放列表管理(即编辑名称、删除) 音频播放通过拖放重新排列播放队列这是使用以下方法实现的: HTML5 CSS3 JavaScript jQuery ( ...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
它使用Ruby on Rails,后端使用PostgreSQL数据库,前端使用React.js和Redux。 特征 使用RESTful API上传,编辑,删除和查看曲目 创建歌曲并将其添加到播放列表 连续播放曲目 评论曲目 查看每个曲目的播放计数 搜索...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
容量仪表板2.0 有关背景信息和设置开发先决条件的详细指南,请参见 。 Capdash2服务器基于Ruby on Rails 5 API ...处理用户头像的文件上传 与载波配合使用的小型magick图像处理器 码文件生成器 依存关系 Po
java8集合源码顶级 ...支持跨域、分块和可续传的文件上传。 适用于任何支持标准 HTML 表单文件上传的服务器端平台(Google App Engine、PHP、Python、Ruby on Rails、Java 等)。 JavaScript 28459 769
Java文件上传组件 COS FAT文件系统读写类库 fat32-lib fat32-lib 是一个用来读写 FAT 16/32 格式文件系统的纯 Java 类库(纯的)。 Eclipse的HTML格式化插件 Eclipse Tidy Eclipse HTML Tidy 是一款 Eclipse 的...
静态资源主要是指应用层中展现层中所要使用到的静态资源文件,以及由用户在业务操作中产生的文件等,如图片、上传的文件等; 而动态数据是指用户在使用平台的过程中所产生的业务数据,在实现业务中,这部分数据大...