jruby1.0出来了,经理就要求把以前做的一个项目部署在jruby上,转换过去后,什么都好好的,唯一有点问题的就是上传,如果是上传text文件,没有什么问题,但像rar,doc,jpg文件都不行,会报一个:#<NativeException: java.lang.StringIndexOutOfBoundsException: String index out of range: -848>,而且出错的地方是 点submit后 到 doupload 这个动作之前发生的
开始的时候,我认为是url把上传的内容加在url后进行上传的,但上传一个200k的text文件成功,而一个10k的doc不成功,所以不成立,另外一个想法就是,可能是编码的问题,可在text中写入中文,但没有什么影响,实在想不明白是什么回事,也搜索不到什么有效的信息,希望大家指点一下,下面附上部分代码
appication.rb
#编码设置
before_filter :configure_charsets
after_filter :after
def configure_charsets
response.headers["Content-Type"] = "text/html; charset=utf-8"
response.headers["Cache-Control"] = "no-cache"
response.headers["Pragma"] = "no-cache"
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES utf8'
end
end
上传操作的action
class UploadController < ApplicationController
IFRAMECTX = <<-html
<style type="text/css">
body {
background-color:#D3DDE7;
margin: 0px;
}
</style>
<body>INFO</body>
html
IMAGE_TYPES = [ "image/jpg", "image/jpeg", "image/pjpeg", "image/gif","image/png" ]
def init
render_text IFRAMECTX.sub('INFO','')
end
def doupload
begin
client_file = params[:file]
if 'image' == params[:mime]
ftype = client_file.content_type.strip
if not IMAGE_TYPES.include?(ftype)
render_text IFRAMECTX.sub('INFO','不支持该格式,上传失败(只支持jpg|gif|png格式的图片)')
return
end
end
if client_file.size > FILEUPLOAD_SIZE
render_text IFRAMECTX.sub('INFO','上传文件过大,限定值为5M')
return
end
server_file = RAILS_ROOT + FILEUPLOAD_TEMPDIR + session.session_id + File.extname(client_file.original_filename)
upload(client_file,server_file)
render_text IFRAMECTX.sub('INFO','上传成功')
rescue => e
@errorNumber = 110 if @errorNumber.nil?
render_text IFRAMECTX.sub('INFO','上传失败')
end
end
end
上传的rhtml
<iframe id="upload_result" name="upload_result" frameborder="0" scrolling="no" height="35" width="600"></iframe></p>
<%= start_form_tag( {:controller=>'/upload', :action=>'doupload'}, :multipart=>true, :target=>'upload_result' ) %>
<label for="file"><%= label%></label><br/><%= file_field_tag "file" %><% if defined? mime %><%= hidden_field_tag('mime',value=mime) %><% end %><%= submit_tag "上传" %>
<%= end_form_tag %>
<script>
$('upload_result').src='/upload/init'
</script>
分享到:
- 2007-07-24 15:20
- 浏览 1191
- 评论(0)
- 论坛回复 / 浏览 (0 / 3133)
- 查看更多
相关推荐
标题“用JRuby读取Excel文件”涉及到的主要技术点是JRuby和处理Excel文件,这里我们将深入探讨这两个关键概念。 JRuby是Java平台上的一个Ruby实现,它允许开发者使用Ruby语言编写程序,同时利用Java的类库和运行...
找不到或无法加载主类org.jruby.Main。 原因是/usr/local/hbase/lib 目录下没有jruby-complete-1.7.19.jar文件.,下载本文件,解压缩后将jar文件直接添加到/usr/local/hbase/lib 目录下。
标题中的“jruby_windows_1_6_4安装文件”指的是JRuby的一个特定版本——1.6.4,特别针对Windows操作系统设计的安装包。 **JRuby的优势** 1. **跨平台兼容性**:JRuby利用Java虚拟机(JVM)的优势,可以在任何支持...
- **'cmd' 错误提示**: 如果在运行 JRuby 脚本时出现 `'cmd' 不是内部或外部命令,也不是可运行的程序或批处理文件` 的错误,可能是因为 JRuby 的批处理文件 `jruby.bat` 与系统之间存在冲突。一种临时解决方案是...
标题 "org.jruby.rar" 暗示我们正在讨论一个与 JRuby 相关的压缩文件,其中可能包含了 JRuby 的源代码、库文件或者其他相关资源。JRuby 是一种 Java 实现的 Ruby 解释器,它允许 Ruby 代码在 JVM(Java 虚拟机)上...
**JRuby 1.7.8 版本详解** JRuby 是一个开源的、高性能的 Ruby 解释器,它能够将 Ruby 代码编译成 Java 字节码,从而在 Java 虚拟机(JVM)上运行。JRuby 的出现使得 Ruby 开发者能够利用 JVM 的强大功能和丰富的库...
- **安装**:解压zip文件后,将`jruby-1.3.1/bin`目录添加到PATH环境变量中,即可在命令行中使用`jruby`命令。 - **运行Ruby代码**:通过`jruby your_script.rb`命令运行Ruby脚本。 - **与Java集成**:使用`jruby...
这个压缩包“jruby-src-1.0.zip”包含了JRuby 1.0版本的所有源代码文件,对于开发者来说,这是一份宝贵的学习和定制JRuby的资源。 在了解JRuby之前,我们先来看一下Ruby语言。Ruby是由松本行弘(Yukihiro Matsumoto...
jruby-complete-1.7.19.jar,java版本的ruby解析器
文件列表中只提到 "jruby-1.5.5",可能是因为其余部分如 OperaWatir 和 RSpec 的库已经被包含在 JRuby 的环境中,或者它们是以其他文件形式存在,如 Gem 文件或其他配置文件。 对于开发者来说,了解如何将这些工具...
假设我们需要将两个CSV文件中的数据转换成一个按机构分类的卡BIN规则文件。这个过程中,我们可以利用JRuby的灵活性以及它与Java类库的无缝集成来完成任务。 - **引入Java类库**:首先需要使用`require 'java'`来...
此外,还需要在Class Path中添加JRuby相关的jar文件,如bsf.jar和jruby.jar,以便jprofiler能够识别和监控JRuby的运行。 在jprofiler的配置中,"Main class or executable JAR"字段填写`org.jruby.Main`,...
标题 "jruby-1.7.9.zip" 暗示了我们正在处理一个与 JRuby 相关的文件,JRuby 是一个流行的 Java 实现的 Ruby 语言版本。它允许开发者在 Java 平台上运行 Ruby 代码,利用 JVM (Java Virtual Machine) 的性能和生态...
jruby安装包 和 jruby的lib库 JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让...
**标题解析:**"jruby-bin-0.9.0.tar.gz" 是一个压缩文件,其中包含JRUBY的可执行二进制版本,版本号为0.9.0。JRUBY是Ruby编程语言的一个实现,它允许在Java平台上运行Ruby代码。 **描述解读:**描述中提到“Ruby...
标题 "jruby-core-1.7.12.zip" 提供的是 JRuby 的核心库版本 1.7.12,这是一个将 Java 虚拟机(JVM)与 Ruby 语言结合的开源实现。JRuby 允许开发者在 Java 平台上运行 Ruby 代码,同时利用 Java 生态系统的强大功能...
《jRuby on Rails WEB2.0》:将Ruby on Rails融入Java平台的实践指南 《jRuby on Rails WEB2.0》是一部由Ola Bini撰写的书籍,深入探讨了如何将Ruby on Rails这一敏捷开源框架与Java平台相结合,以构建高效、灵活的...
【压缩包子文件的文件名称列表】:《走近JRuby.ppt》 这个PPT文件很可能是博主分享的演讲材料,包含了对JRuby的深入讲解。内容可能包括以下几个方面: 1. **JRuby简介**:介绍JRuby的历史、开发背景、主要特性,...
JRuby的版本"jruby-jruby-7bee00d"可能是一个特定的Git提交版本,这表明它是一个开发版本,可能包含了最新的功能和改进。通常,这样的版本会包含一些实验性的特性,对于开发者来说,他们可以提前试用新功能并提供...