jspsmartupload乱码问题(修改源码的解决办法)

解决jspsmartupload上传文件时文件名中文乱码 解决的方法就是该两个放的参数: 1,上传文件名乱码问题 解决方法:把smartUpload.java类中的getDataHeader()方法中的 String s = new String(m_binArray, i, (j - i) + 1) 改为 String s = new String(m_binArray, i, (j - i) + 1,"utf-8") 2,... 阅读详情

下载地址:http://download.youkuaiyun.com/source/1106887

 

在用jspsmartupload组件进行文件上传下载的时候,如果用户选择的是含有中文名字的文件名或是文件路径含有中文,则会出现乱码.经过一段时间的调试,本人已经初步解决了这个问题.现将解决的代码贴出来.

 

1.上传(经过测试绝对成功)
  在SmartUpload.java文件中,增加一个属性private String charset用于进行字符编码转换,相应的有两个方法: 
public void setCharset(String charset)
 {
  this.charset = charset;
 }
 public String getCharset()
 {
  return this.charset;
 }
另外改动二个地方:
在upload()方法中,将
String s11 = new String(m_binArray,m_startData,(m_endData - m_startData) + 1);改为
String s11 = new String(m_binArray,m_startData,(m_endData - m_startData) + 1,this.getCharset());
这个时候我们应该在进行处理上传的jsp中进行设置SmartUpload su = new SmartUpload();su.setCharset("UTF-8");就可以了.(这步是在上传的时候设置它的编码)
在getDataHeader()方法中,将
String s = new String(m_binArray, i, (j - i) + 1);
改为
String s;
try
  {
   s = new String(m_binArray, i, (j - i) + 1,this.getCharset());
  }
  catch(Exception e)
  {
   s = "";
  }
  在SmartFile.java文件中,增加一个属性private String charset用于进行字符编码转换,相应的有两个方法: 
public void setCharset(String charset)
 {
  this.charset = charset;
 }
 public String getCharset()
 {
  return this.charset;
 }
另外需要改动一个地方
在getContentString()方法中,将
String s = new String(m_parent.m_binArray,m_startData,m_size);
改为
String s;
     try
     {
      s = new String(m_parent.m_binArray,m_startData,m_size,this.getCharset());
     }
     catch(Exception e)
     {
      s = "";
     }
对于SmartFile.java文件中,本人认为可改可不改,不会对上传有什么影响.
经过如此改动源代码后,对于中文乱码问题有很好的解决能力.
2.下载
  在SmartUpload.java文件中,将downloadFile(String s, String s1, String s2, int i)方法改为
public void downloadFile(String s, String s1, String s2, int i)
throws ServletException, IOException, SmartUploadException
{
if(s == null)
throw new IllegalArgumentException("File '" + s +
"' not found (1040).");
if(s.equals(""))
throw new IllegalArgumentException("File '" + s +
"' not found (1040).");
if(!isVirtual(s) && m_denyPhysicalPath)
throw new SecurityException("Physical path is
denied (1035).");
if(isVirtual(s))
s = m_application.getRealPath(s);
java.io.File file = new java.io.File(s);
FileInputStream fileinputstream = new FileInputStream(file);
long l = file.length();
boolean flag = false;
int k = 0;
byte abyte0[] = new byte[i];
if(s1 == null)
m_response.setContentType("application/x-msdownload");
else
if(s1.length() == 0)
m_response.setContentType("application/x-msdownload");
else
m_response.setContentType(s1);
m_response.setContentLength((int)l);
m_contentDisposition = m_contentDisposition != null ?
m_contentDisposition : "attachment;";
if(s2 == null)
m_response.setHeader("Content-Disposition",
m_contentDisposition + " filename=" +
toUtf8String(getFileName(s)));
else
if(s2.length() == 0)
m_response.setHeader("Content-Disposition",
m_contentDisposition);
else
m_response.setHeader("Content-Disposition",
m_contentDisposition + " filename=" + toUtf8String(s2));
while((long)k < l)
{
int j = fileinputstream.read(abyte0, 0, i);
k += j;
m_response.getOutputStream().write(abyte0, 0, j);
}
fileinputstream.close();
}
 
另外需要增加一个获得汉字字符的UTF-8编码的方法
/**
* 将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名.
* 纵横软件制作中心雨亦奇2003.08.01
* @param s 原文件名
* @return 重新编码后的文件名
*/
public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i=0;i<s.length();i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = Character.toString(c).getBytes("utf-8");
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0) k += 256;
sb.append("%" + Integer.toHexString(k).
toUpperCase());
}
}
}
return sb.toString();
}
将这个增加到SmartUpload.java文件中,下载时的另存中文名乱码问题便不会出现了.
解决smartupload中文乱码问题:jspsmartupload教程 本文还有配套的精品资源,点击获取 简介:在Web应用开发中,文件上传功能广泛使用,而中文文件名或内容上传时常常出现乱码问题。 SmartUpload 作为Java上传组件,虽然简化了上传过程,但在处理中文时可能引发乱码。本文详细讨论了这一问题的成因,并提供了通过 jspsmartupload 解决 SmartUpload 中文乱码的... 阅读详情

相关推荐

smartupload源码包及说明大全

smartupload,内含源码,jar包以及使用说明,内容齐全,特别是源码,可以在工程里设置匹配,酱紫就可以读到它的源码从而自己摸索其函数的内部实现及功能。

jspsmartupload上传下载,解决乱码

先上源程序:

FFA(Frighting for Ambition!) 2560

jspSmartUpload.jar(已解决utf-8乱码问题)

重新编译过,修正了utf-8下取值乱码的问题

SmartUpload组件应用注意的地方

使用SmartUpload上传文件不成功可能有一下几个原因: 首先有两个页面,一个有表单的页面,一个是处理表单的页面。 1. //...省略 标签属性写错 2 在SmartUpload执行upload()方法前没有设置字符编码 如setCharSet("GBK"); 3 web容器或服务器没有启动,没部署好 使用SmartUpload中文乱码的问题 首先在两个页面上设置相同

Azhuoyanyan的专栏 584

jspsmartupload.jar 可以处理下载时中文乱码问题

博文链接:https://streamfly.iteye.com/blog/78840

smartupload 改源码解决乱码问题jar包

修改smartupload源码,解决上传文件中文乱码的问题,绝对可行 使用 SmartUpload su = new SmartUpload(); su.setCharset("UTF-8"); //实例化后加上这句 //获取文件名 String filename = file.getFile(0).getFileName();//中文不再是乱码

(转载,真的可以)jspsmartupload乱码问题(修改源码的解决办法)

https://blog.youkuaiyun.com/bristy_pu/article/details/9299079#commentBox

KJDBOY的博客 349

SmartUpload中文乱码解决

SmartUpload中文乱码解决版本 亲自改写源码 jar包含源码 亲测可用 优快云另一人上传的 不包含SmartUpload的Request类 不完善 201 511行进行修改 String s11 = new String(m_binArray, m_startData, (m_endData - m_startData) + 1,"utf-8"); 提供另一种方法 页面数据提交前 用js encodeURI(s) 后台进行URLDecoder.decode(s);

jspsmartupload的上传下载时中文乱码的解决方案

最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决方案,最彻底的解决办法就是修改jspsmartupload的源码,在upload、download方法处强制指定它的编码格式就可以了。需要修改SmartUpload.jav

lijiejacy的专栏 1411

SmartUpload源码及使用例子,解决中文乱码问题

解决Smartupload上传中文名称文件乱码问题。 解决获取中文表单内容乱码问题。 包含全部源码 支持GBK编码,方法myUpload.setCharset("GBK");//设置编码GBK, 附件中包含一个上传文件的例子

jspsmartupload_jsp_

基于JspSmartUpload组件的文件上传源码

解决jspsmartupload上传文件中文乱码

      采用jspsmartupload上传文件时,如果文件名含有中文,在服务器端取得文件名是会出现乱码。如果表单项中填写了中文,一样会有乱码问题。看了下jspsmartupload的源码,改了两个地方,现在可以没有乱码问题了。 第一个地方,修改类SmartUpload中的upload()方法 public void upload() throws SmartUploa...

iteye_8015的博客 310

搭建Dzzoffice 教程

通过以上步骤,您已经成功配置了WEB环境,安装了DzzOffice,并完成了系统设置和应用安装。1.安装包的设置默认是系统盘之外的第二个盘,没有其他盘符的时候则安装在C盘,当主机盘符只有C盘可用的时候,安装时不要使用U盘,否则可能误装到U盘当中。4.如果之前已经安装,再次安装时请确保上次安装已经卸载或者所有文件可读,否则请备份文件,卸载之后再安装。在其他安装环境中,我没有相关的使用经验。3. 保证安装路径是纯净的,安装路径下不能有已安装的V8版本,若重新安装,请选择其它路径。

小胡的博客 4950

JspsmartUpload源码编译打包和解决乱码方法

一、源码部署和编译: (1)如图:源码目录结构,在src下新建 包:com.jspsmart.upload  ,将下面五个java源码文件,放在上面的包里面: (2)打开“  SmartUpload.java  ”,查找  “ String value ”,如图位置,后面添加 “  ,UTF-8” 。 (3)继续查找  “  String dataHeader  ”,如图

分享·收获 3825

LangChain + Milvus Lite:从零搭建本地RAG知识库

本文详细介绍了如何利用LangChain、Milvus Lite和gte-large-zh模型,在本地从零搭建一个完整的RAG知识库系统。文章涵盖了环境配置、文档处理与向量化、本地向量库构建以及检索问答实现的全流程,重点突出了完全本地化部署带来的数据隐私安全和成本优势,为开发者提供了一条实践性极强的技术路径。

weixin_29044713的博客 443

Matlab系列之GUI设计基础

Matlab系列之GUI设计基础简介编辑界面菜单设计控件设计控件描述个人理解Matlab转译控件属性【1】外观与行为【2】控件对象的信息【3】回调函数【4】状态信息结束结束更多精彩,等你发现~ 简介 GUI即图形用户界面(Graphical User Interface),人机交互的一种方式,可以简化用户的操作,比如只需要点点窗口上的按键或者菜单选择等等,就可以实现一个复杂的功能,有点类似黑盒的操作吧。 本篇将主要介绍GUI的使用,以及一些功能,后续的篇章再使用GUI来设计实例。 打开GUI可以在Matla

Smart_Devil的博客 5万+

用jspsmartupload实现文件上传下载遇到的问题

今天学习了在web项目中用jspsmartupload插件实现简单的文件上传下载功能,因为过程很曲折,就写了下来。最开始,因为第一次用插件,发现插件比写底层方法要快多了。但用的过程中就发现了一些问题,对于初学java的我实在是头大。记录一下遇到的问题吧: 1.在文件上传的jsp页面出现中文乱码的问题,在网上搜了一下午加一晚上的方法,各种尝试。大多数都是request.setCharacterEn

cs3235301的博客 1474

YOLO26改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLO26-T !!! 最新的发文热点

模块是模型中的一个重要组成部分,其主要作用是在模型的初始阶段对输入图像进行处理,方便后续的特征提取和目标检测。以下是对。

Limiiiing的博客 900

关于jspsmartupload中文名文件上传后为乱码的问题

纯转载:http://www.knowsky.com/3136.html         看了一些但做完不支持大文件上传就又找别的方法了         jspSmartUpload虽然能下载文件,但对中文支持不足。若下载的文件名中有汉字,则浏览器在提示另存的文件名时,显示的是一堆乱码,很扫人兴。上面的例子就是这样。(这个问题也是众多下载组件所存在的问题,很少有人解决,搜索不到相关资料,可叹!)

vkqiang的专栏 1710

华为OD机试真题2025双机位B卷 Java&Go 实现【朋友圈个数】

给定一组朋友关系,统计一下该朋友关系网中的朋友圈个数。 朋友圈的定义:一个朋友圈至少由3个朋友组成,且要求同一个朋友圈中的任意两个人都具有直接的朋友关系。 输入描述 输入一个朋友关系列表,如 Fiends =A.B],[A.C],IB,DI,其中的每一个元素 Friendsi表示 Friends[i][0)和 Friends [i][1] 是朋友关系 先输入一个数字 N 代表关系的总数,后面每条关系一行,两个成员以逗号分隔

MISAYAONE的博客 517

Deeplabv3+改进1:添加CBAM注意力机制|有效涨点

我们提出卷积块注意力模块(CBAM),这是一种简单而有效的前馈卷积神经网络注意力模块。给定一个中间特征图,我们的模块会依次沿两个独立维度(通道和空间)推断注意力图,然后将注意力图与输入特征图相乘,以实现自适应特征细化。由于 CBAM 是一个轻量级且通用的模块,它可以无缝集成到任何 CNN 架构中,几乎不会增加开销,并且可以与基础 CNN 一起端到端训练。我们通过在 ImageNet-1K、MS COCO 检测和 VOC 2007 检测数据集上进行的大量实验验证了 CBAM。

AIcurator的博客 1691

jspsmartupload上传文件中文乱码

采用jspsmartupload上传文件时,如果文件名含有中文,在服务器端取得文件名是会出现乱码。如果表单项中填写了中文,一样会有乱码问题。看了下jspsmartupload的源码,改了两个地方,现在可以没有乱码问题了。 第一个地方,修改类SmartUpload中的upload()方法 [code="java"] public void upload() t...

zhaidizhu的专栏 217

OpenCV-Python图形图像处理:自用的一些工具函数源代码

本文为《OpenCV-Python图形图像处理:博主自用的一些工具函数功能及调用语法介绍》内容配套函数的源代码。

老猿Python 2494
上一篇: 获取项目文件在服务器的真实路径
下一篇: java web开发一个帐号同一时间只能一个人登录
cg_program
博客等级 码龄19年 245粉丝 147原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值