- 浏览: 60183 次
- 性别:
- 来自: 深圳
最新评论
参考了下"rails漫步"的日志,自己也实践了下,下面的问题差不多都遇到了,为此记录下:
1.下载,安装:
a.命令安装:ruby script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/trunk
b.直接安装:把压缩包解压到/vender/plugins/file_column文件夹下即可完成安装(file-column-0.3.1.tar.gz)(我采用的方式)
2.使用方法 :
a.ruby script/generate scaffold entry image:string
b.在Model中,加入
class Entry < ActiveRecord::Base
file_column :image
end
1).Rails2.3安装该插件,报错如下:
uninitializedconstant FileColumn::ClassMethods::Inflector
解决办法:找到 \plugins\file_column\lib\file_column.rb
找到如下代码:
my_options = FileColumn::init_options(options, Inflector.underscore(self.name).to_s, attr.to_s)
修改为:
my_options = FileColumn::init_options(options, ActiveSupport::Inflector.underscore(self.name).to_s, attr.to_s)
2).file_column上传大写后缀名文件报错的解决办法
编辑file_column.rb文件
把:FileUtils.mv(local_file_path, new_local_file_path) unless new_local_file_path == local_file_path
修改成:FileUtils.mv(local_file_path, new_local_file_path) unless new_local_file_path.downcase == local_file_path.downcase
3).file_column上传中文文件名的文件时,汉字变成“_”的解决办法
注释掉file_column.rb文件 把方法 self.sanitize_filename(filename)中的 filename.gsub!(/[^a-zA-Z0-9\.\-\+_]/,"_")
但有的中文就会发生Invalid argument - ./public/entry/image/tmp/的错误。
整理一下,关于File_column+RMagick实际应用中的一些小技巧:
仅允许上传图片:
在类文件中的声明:
file_column :image, :magick => {
:attributes => { :format => ‘jpg’ },
:crop => ‘1:1′,
:versions => { “medium” => “120×120>” , “thumb” => “50×50″}
}
4.页面上使用url_for_file_column显示图片时报错
在页面时使用url_for_file_column helper方法显示图片时报“undefined method `relative_url_root' for #”错误,在网上找个下原因,将
file_column_helper.rb中" url << @request.relative_url_root.to_s << "/" ”改为“url << ActionController::Base.relative_url_root.to_s << "/" "就可以了”,还不清楚为什么。
“thumb” => “50×50″ : 表示如果宽度大则宽度为50如果高度大则高度为50,
“thumb” => “50×50!” : “!”表示强制50*50
“thumb” => “50×50>” : “>”表示如果图片本来就小,就不用放大
“thumb” => “50x>” : 默认宽度为50,高度自适应
Processing EntriesController#create (for 127.0.0.1 at 2011-02-28 18:13:52) [POST]
Parameters: {"commit"=>"Create", "authenticity_token"=>"68zeIrxBMEozxKGyd03LPTt+HpIfDf0yoHhihVCmC7A=", "entry"=>{"image_temp"=>"", "image"=>#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart.4980.0>}}
Entry Columns (4.0ms) SHOW FIELDS FROM `entries`
SQL (1.0ms) BEGIN
Entry Create (1.0ms) INSERT INTO `entries` (`updated_at`, `image`, `created_at`) VALUES('2011-02-28 10:13:52', '___3.jpg', '2011-02-28 10:13:52')
SQL (35.0ms) COMMIT
Redirected to http://localhost:3000/entries/6
Processing EntriesController#create (for 127.0.0.1 at 2011-03-01 13:13:15) [POST]
Parameters: {"commit"=>"Create", "authenticity_token"=>"tK+oWZmp5psq59wGqUmcEMYxS2Uj5cfkwwubrP+Lixs=", "entry"=>{"image_temp"=>"1298956337.684000.3488/rails.png", "image"=>#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart.3488.1>}}
require 'action_controller'
=> []
require 'action_controller/test_process.rb'
=> []
ActionController::TestUploadedFile.new("#{RAILS_ROOT}/public/images/rails.png", 'image/png', false)
=> #<ActionController::TestUploadedFile:0x641a0f4 @content_type="image/png", @original_filename="rails.png", @tempfile=#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/rails.png.3160.0>>
Tempfile.new("rails.png")
=> #<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/rails.png.3160.1>
Processing A::PhotosController#create (for 127.0.0.1 at 2011-03-01 14:39:03) [POST]
Parameters: {"public"=>"true", "uploaded_data"=>#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart1440-3>}
User Columns (6.0ms) SHOW FIELDS FROM `users`
User Load (1.0ms) SELECT * FROM `users` WHERE (`users`.`id` = 2) LIMIT 1
------#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart1440-3>---------------------------!!
------C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart1440-3---------------------------!!
------#<ActionController::TestUploadedFile:0x119235f4 @tempfile=#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart1440-31440-0>, @content_type="image/jpg", @original_filename="RackMultipart1440-3">-------------
参考地址:http://hi.baidu.com/kenrome/blog/item/dedd2f97bec8836554fb9674.html
http://hi.baidu.com/kenrome/blog/item/f40c5de747c8ad2db9382099.html
http://airport.iteye.com/blog/33216
1.下载,安装:
a.命令安装:ruby script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/trunk
b.直接安装:把压缩包解压到/vender/plugins/file_column文件夹下即可完成安装(file-column-0.3.1.tar.gz)(我采用的方式)
2.使用方法 :
a.ruby script/generate scaffold entry image:string
b.在Model中,加入
class Entry < ActiveRecord::Base
file_column :image
end
1).Rails2.3安装该插件,报错如下:
uninitializedconstant FileColumn::ClassMethods::Inflector
解决办法:找到 \plugins\file_column\lib\file_column.rb
找到如下代码:
my_options = FileColumn::init_options(options, Inflector.underscore(self.name).to_s, attr.to_s)
修改为:
my_options = FileColumn::init_options(options, ActiveSupport::Inflector.underscore(self.name).to_s, attr.to_s)
2).file_column上传大写后缀名文件报错的解决办法
编辑file_column.rb文件
把:FileUtils.mv(local_file_path, new_local_file_path) unless new_local_file_path == local_file_path
修改成:FileUtils.mv(local_file_path, new_local_file_path) unless new_local_file_path.downcase == local_file_path.downcase
3).file_column上传中文文件名的文件时,汉字变成“_”的解决办法
注释掉file_column.rb文件 把方法 self.sanitize_filename(filename)中的 filename.gsub!(/[^a-zA-Z0-9\.\-\+_]/,"_")
但有的中文就会发生Invalid argument - ./public/entry/image/tmp/的错误。
整理一下,关于File_column+RMagick实际应用中的一些小技巧:
仅允许上传图片:
在类文件中的声明:
file_column :image, :magick => {
:attributes => { :format => ‘jpg’ },
:crop => ‘1:1′,
:versions => { “medium” => “120×120>” , “thumb” => “50×50″}
}
4.页面上使用url_for_file_column显示图片时报错
在页面时使用url_for_file_column helper方法显示图片时报“undefined method `relative_url_root' for #”错误,在网上找个下原因,将
file_column_helper.rb中" url << @request.relative_url_root.to_s << "/" ”改为“url << ActionController::Base.relative_url_root.to_s << "/" "就可以了”,还不清楚为什么。
“thumb” => “50×50″ : 表示如果宽度大则宽度为50如果高度大则高度为50,
“thumb” => “50×50!” : “!”表示强制50*50
“thumb” => “50×50>” : “>”表示如果图片本来就小,就不用放大
“thumb” => “50x>” : 默认宽度为50,高度自适应
Processing EntriesController#create (for 127.0.0.1 at 2011-02-28 18:13:52) [POST]
Parameters: {"commit"=>"Create", "authenticity_token"=>"68zeIrxBMEozxKGyd03LPTt+HpIfDf0yoHhihVCmC7A=", "entry"=>{"image_temp"=>"", "image"=>#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart.4980.0>}}
Entry Columns (4.0ms) SHOW FIELDS FROM `entries`
SQL (1.0ms) BEGIN
Entry Create (1.0ms) INSERT INTO `entries` (`updated_at`, `image`, `created_at`) VALUES('2011-02-28 10:13:52', '___3.jpg', '2011-02-28 10:13:52')
SQL (35.0ms) COMMIT
Redirected to http://localhost:3000/entries/6
Processing EntriesController#create (for 127.0.0.1 at 2011-03-01 13:13:15) [POST]
Parameters: {"commit"=>"Create", "authenticity_token"=>"tK+oWZmp5psq59wGqUmcEMYxS2Uj5cfkwwubrP+Lixs=", "entry"=>{"image_temp"=>"1298956337.684000.3488/rails.png", "image"=>#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart.3488.1>}}
require 'action_controller'
=> []
require 'action_controller/test_process.rb'
=> []
ActionController::TestUploadedFile.new("#{RAILS_ROOT}/public/images/rails.png", 'image/png', false)
=> #<ActionController::TestUploadedFile:0x641a0f4 @content_type="image/png", @original_filename="rails.png", @tempfile=#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/rails.png.3160.0>>
Tempfile.new("rails.png")
=> #<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/rails.png.3160.1>
Processing A::PhotosController#create (for 127.0.0.1 at 2011-03-01 14:39:03) [POST]
Parameters: {"public"=>"true", "uploaded_data"=>#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart1440-3>}
User Columns (6.0ms) SHOW FIELDS FROM `users`
User Load (1.0ms) SELECT * FROM `users` WHERE (`users`.`id` = 2) LIMIT 1
------#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart1440-3>---------------------------!!
------C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart1440-3---------------------------!!
------#<ActionController::TestUploadedFile:0x119235f4 @tempfile=#<File:C:/Users/FYT~1.SAF/AppData/Local/Temp/RackMultipart1440-31440-0>, @content_type="image/jpg", @original_filename="RackMultipart1440-3">-------------
参考地址:http://hi.baidu.com/kenrome/blog/item/dedd2f97bec8836554fb9674.html
http://hi.baidu.com/kenrome/blog/item/f40c5de747c8ad2db9382099.html
http://airport.iteye.com/blog/33216
发表评论
-
Diaspora 功能特性列表
2013-05-10 14:25 1025Diaspora Function Features List ... -
rails scaffold getting the column list from existing table
2011-09-23 10:02 918之前一直找这个问题的解决办法,但一直没找到,在g上看到了一个人 ... -
ruby语法-传值
2011-08-23 16:49 1057=begin def test1(*a) p a.firs ... -
Rails 3 用 JQuery 替代 Prototype
2011-07-28 22:48 11381.进入到工程目录中修改Gemfile文件,加入如下行: g ... -
Generate a list of Rails controllers and methods
2011-07-01 17:40 858列出项目中的controler和他对应的actions: @c ... -
Ubuntu手动安装JDK
2011-05-20 16:03 574Ubuntu手动安装JDK 安装前可以查看一下jdk版本,进 ... -
bundler
2011-04-25 12:12 832Rails3里多了个Bundler工具。 它是一个Librar ... -
研究小计1
2011-04-20 00:55 666有时候对一些基础的东西,不知道它的边界在哪里,其实做些小实验就 ... -
RubyGem version error: rack(1.0.0 not ~> 1.0.1)
2011-04-17 00:09 1362I have this error when I try to ... -
rubyonrails Restful Authentication 插件
2011-04-17 00:01 816restful_authentication是Rails的一个 ... -
XP.CMD命令大全
2011-04-17 00:00 639有关某个命令的详细信 ... -
几个有用的方法
2011-04-16 23:58 591hash.invert Returns a new hash ... -
Firefox键盘快捷方式
2011-04-16 23:55 1218Firefox键盘快捷方式 键盘快捷健 下面是 Mozil ... -
Ubuntu手动安装JDK
2011-04-16 23:53 735Ubuntu手动安装JDK 安装前可以查看一下jdk版本,进 ... -
字符转时间格式转换成时间对象
2011-04-16 23:52 764Time.parse("Wed, 23 Jan 20 ... -
使用Rails时遇到了服务器启动问题 script/server:3
2011-04-16 23:47 1291境 Windows Vista Home Premium c ... -
DoDirectPayment
2011-04-16 23:44 1002DoDirectPayment 1. DoDirectPay ... -
Rails异常处理
2011-04-16 23:43 964异常处理是开发过程中 ... -
ruby和rails中的回调函数
2011-04-16 23:41 1888Ruby中Class,Object,Module这三个类定义了 ... -
深入理解alias, alias_method和alias_method_chain
2011-04-16 23:41 891对 于alias, alias_method, alias_m ...
相关推荐
通过自定义`WebChromeClient`、请求读取权限、实现文件选择器和使用`FileProvider`,可以解决这个问题,使用户能够正常在Webview中上传文件。这些步骤是Android开发者在处理Webview与本地文件交互时必须掌握的关键...
3. 处理方式:对BLOB进行操作时,通常涉及二进制文件的读写,例如图片的上传和下载。CLOB操作则更偏向于文本内容的处理,如文本编辑、搜索等。 在Oracle数据库中,插入和查询BLOB和CLOB对象有特定的方法: 1. 插入...
SELECT * FROM <table> WHERE CONCAT('<command>', ' ', <column>) INTO OUTFILE '<file_path>'; ``` 其中,`<command>`是你要执行的系统命令,`<column>`是用于拼接命令的字段。 (2)解决`system()`函数报错...
在ASP(Active Server Pages)开发中,经常需要处理文件上传和数据导入的功能,特别是与Excel文件交互时。本文将深入探讨如何使用ASP实现Excel文件的上传,并将其数据导入到Access数据库中。 首先,我们需要理解ASP...
### Symfony 5中实现文件上传功能 在进行Symfony 5项目的开发过程中,有时我们需要增加文件上传功能以便用户能够上传图片或其他文件与我们进行互动。本文将详细介绍如何在Symfony项目中添加文件上传功能,并通过...
shutil.copy2(source_file, target_file) # copy2保留文件元数据 ``` 为了将这些功能集成到PyQt5界面中,你需要创建一个窗口,包含必要的控件,如打开Excel文件的按钮、显示进度的标签等。当用户点击按钮时,调用...
在Android平台上,文件上传和将数据写入数据库是常见的任务,尤其在开发涉及用户交互的应用时,例如照片分享、文档管理或云同步等场景。本文将深入探讨如何在Android环境中实现这两个功能。 首先,让我们讨论文件...
写LaTeX时遇到报错:LaTeX Error: File `citesort.sty' not found.找到之后上传一下
在IT行业中,数据库管理和文件上传是两个至关重要的领域。这里我们关注的是`jdbcoracle(文件上传)`,这很可能是指使用JDBC(Java Database Connectivity)来操作Oracle数据库,并实现文件上传的功能。以下是对这个...
- **file_column (文件上传)**:此插件简化了文件上传过程,使得在Rails应用中处理文件上传变得更为直观和高效。它支持多种文件类型,并允许你自定义存储选项,如上传位置、文件名生成策略等。 - **acts_as_state_...
四、文件上传 文件上传通常涉及HTTP或HTTPS协议,可以使用多种库实现,如OkHttp、Retrofit等。以下是一个使用OkHttp上传文件的示例: ```java File imageFile = new File(picturePath); RequestBody requestBody =...
在ThinkPHP中,你可以使用`$_FILES`全局变量来接收上传的文件,然后通过`move_uploaded_file()`函数将文件移动到指定目录,如`public/uploads/`。 接下来是CSV文件的解析。CSV文件的数据以逗号分隔,每一行代表一条...
在Java编程环境中,将本地文件读取并上传到HBase是一项常见的任务,特别是在大数据处理和存储的场景下。HBase是一个分布式、版本化的NoSQL数据库,基于Apache Hadoop,适用于大规模数据存储。以下是一个详细的过程,...
JDBC4引入了`PreparedStatement`的`setBlob`和`setClob`方法,可以直接接受`InputStream`或`Reader`作为参数,使得上传大文件时无需一次性加载到内存中,有效避免了内存溢出的问题。 以下是一个简单的示例,展示...
这里的`txt_data`是表名,`column1`, `column2`, `column3`等是表的列,可以根据TXT文件中的实际数据结构来调整。 接下来,我们要解析“readTXT.zip”文件。这是一个压缩包,里面包含了一个或多个TXT文件。在Java中...
insert_query = f"INSERT INTO your_table_name (column1, column2, ...) VALUES ('{values[0]}', '{values[1]}', ...)" cursor.execute(insert_query) connection.commit() connection.close() if __name__ =...
本篇文章将深入探讨如何实现这个功能,主要涉及的技术包括文件上传、Excel解析以及数据库操作。 首先,我们需要一个文件上传接口。在Java中,可以使用Servlet API或者Spring MVC框架来处理文件上传。用户通过表单...
在Web开发中,我们经常需要处理用户上传的文件,MultipartFile是Spring框架提供的一种处理文件上传的接口,它使得我们可以方便地接收和处理上传的Excel文件。下面我们将深入探讨如何使用Java POI和MultipartFile来...