下载前判断浏览器类型
采用不同的文件名编码方式
网上通用的做法是使用 javamail里的一个工具类
后来经过试验,我们可以使用更轻量级的jar包
commons-codec.jar
apache的一个小项目.
下面是实现文件名编码的方法
-
-
public
static
String encodeFileName(HttpServletRequest request, String fileName)
throws
UnsupportedEncodingException {
-
String agent = request.getHeader("USER-AGENT"
);
-
if
(
null
!= agent && -
1
!= agent.indexOf(
"MSIE"
)) {
-
return
URLEncoder.encode(fileName,
"UTF8"
);
-
}else
if
(
null
!= agent && -
1
!= agent.indexOf(
"Mozilla"
)) {
-
return
"=?UTF-8?B?"
+(
new
String(Base64.encodeBase64(fileName.getBytes(
"UTF-8"
))))+
"?="
;
-
} else
{
-
return
fileName;
-
}
-
}
分享到:
相关推荐
解决FF和IE下载文件乱码问题的关键在于识别浏览器类型并适当地进行文件名编码。通过编写这样的工具类,可以有效地避免因编码差异导致的乱码问题,提高用户体验。需要注意的是,随着浏览器的更新迭代,这个问题可能...
以下是对这两个字段以及如何解决文件名乱码问题的详细解释: 1. **强制下载**: - `header("Content-Type: application/force-download")`:这行代码设置了HTTP响应头中的`Content-Type`字段,将其设置为`...
自行复制 ime 和 mb 文件到系统目录中,然后使用 imetool 的安装输入法功能指定输入法名称和 ime 文件即可。 IME TOOL 可以从注册表中删除不需要的输入法,但并不删除文件。 七、其它功能 打开输入法属性、打开关闭...
解决切换到GB18030字符集时多重候选因范围检查可能造成的翻页死机问题(如海峰五笔输入fggg,oitk等编码): 0x03206: 833D BC1E 9273 0074 3483 --->>> 833D BC1E 9273 0472 3483 ==============================...
内容概要:本文详细介绍了雅马哈机械手在锁螺丝过程中与视觉系统的协同工作流程,重点讲解了Socket通信的实现方法、坐标转换的具体步骤以及动态路径规划的技术细节。首先,文章展示了如何通过TCP/IP协议建立机械手与相机之间的稳定通信,确保数据传输的可靠性和实时性。接着,深入探讨了从像素坐标到机械臂笛卡尔坐标的转换过程,强调了标定矩阵的重要性和正确处理字节序的问题。此外,还讨论了托盘动态路径规划的实现,如螺旋式搜索算法的应用及其带来的效率提升。最后,文章分享了一些实际应用中的经验和教训,如处理粘包问题、网络延迟、异常处理机制等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对机械手与视觉系统集成感兴趣的读者。 使用场景及目标:适用于需要深入了解机械手与视觉系统协作机制的场合,帮助工程师更好地理解和优化工业生产线上的自动化设备。目标是提高生产效率和产品质量,减少因技术问题导致的生产停滞。 其他说明:文中提供了多个代码示例,涵盖Python、C++和C#等多种编程语言,便于不同背景的读者参考和实践。同时,作者结合自身经验,给出了许多实用的调试技巧和注意事项,有助于读者规避常见错误并快速解决问题。
内容概要:本文详细介绍了如何利用LabVIEW与西门子S7-200 PLC通过PPI协议进行通讯的方法和技术要点。主要内容涵盖硬件准备、通讯参数配置、PPI协议命令格式、命令发送与接收、数据解析以及常见问题的调试方法。文中强调了硬件选择、波特率设置、命令帧结构、CRC校验、超时处理等方面的具体操作步骤,并提供了多个实用技巧,如地址扫描、批量读取优化、字节序处理等。 适合人群:从事工业自动化系统集成、LabVIEW编程、PLC通讯开发的技术人员。 使用场景及目标:适用于需要将LabVIEW与西门子S7-200 PLC进行通讯的工程项目,帮助技术人员快速掌握PPI协议的应用,提高通讯稳定性和效率。 其他说明:文章不仅提供了详细的理论指导,还分享了许多实践经验,有助于解决实际应用中的各类问题。
计算机二级考试资源合集:高效备考,轻松通关! 本合集涵盖计算机二级考试核心内容,包括软件/硬件知识、编程、数据库、网络技术等,提供理论资料与实战资源(如PHP示例、网页文件、配置数据等),助你系统复习、强化实操。适合考生快速提升技能,顺利通过考试!
内容概要:本文档提供了基于STM32的宠物饮水机的C++源代码,实现了循环过滤和保持水质清洁的功能。代码包括硬件初始化、水位检测、温度监测、紫外线杀菌以及OLED显示等功能模块。通过水位传感器检测水位并控制水泵启停,使用DS18B20温度传感器监测水温并在OLED屏幕上显示,每小时自动启动紫外线灯进行杀菌5分钟。此外,详细解释了水位传感器的工作原理及其在代码中的实现,重点介绍了浮球式传感器的结构和工作过程。 适合人群:对嵌入式系统开发有一定了解,特别是熟悉STM32平台和C++编程的工程师或爱好者。 使用场景及目标:①学习STM32平台下的硬件初始化和外设驱动编程;②掌握水位传感器、温度传感器及紫外线杀菌功能的设计与实现;③理解浮球式水位传感器的工作原理及其在实际项目中的应用。 阅读建议:此资源不仅提供了完整的源代码,还详细解释了每个功能模块的实现细节,适合在实际项目中参考和学习。建议读者结合STM32开发板进行实践操作,深入理解各个功能模块的工作机制,并根据具体需求进行功能扩展和优化。
语音模块的打印文件,直接使用。
内容概要:本文档是傲拓科技股份有限公司发布的NA200H可编程控制器(PLC)硬件手册,旨在详细介绍NA200H系列PLC的硬件特性、安装、拆卸与接线原则。NA200H系列PLC是一款小型一体化PLC,具有集成以太网接口,适用于恶劣运行环境,具备良好的扩展性能和低廉的价格。手册涵盖了NA200H PLC的硬件组成(包括CPU模块和各种扩展模块)、工作方式、编程软件介绍、快速应用指南以及详细的安装、拆卸与接线原则。此外,手册还提供了CPU模块和各类I/O扩展模块的技术参数、端子定义与接线说明,并介绍了多种通讯模块的功能和特性。最后,附录部分列出了订货参数和扩展模块的功率消耗清单。 适合人群:具备一定电气知识的操作人员和技术人员,特别是从事自动化控制系统设计、安装和维护的工程师。 使用场景及目标:①帮助用户了解NA200H PLC的硬件结构和工作原理;②指导用户正确安装、配置和维护NA200H PLC;③协助用户选择合适的扩展模块以满足特定的应用需求;④提供详细的接线和通讯配置指导,确保系统稳定运行。 阅读建议:本手册内容详尽,建议读者在使用产品前仔细阅读并理解相关内容,尤其是安装、拆卸和接线部分,以确保系统的安全和稳定运行。同时,建议结合实际应用场景,灵活运用手册中的信息,进行合理的系统设计和配置。
电脑手机端全新UI界面优化更新 支持PC+wap端自动识别跳转 代码工整易于阅读,方便二次修改 全站幻灯片后台自定义更换 大部分可见数据后台可自行修改配置 栏目结构层次清晰,非常利于搜索引擎优化 服务器环境:PHP>=5.3,支持最新的PHP7 系统默认采用Sqlite数据库,放入PHP(5.3+)环境即可直接使用, 系统独家支持七牛云对接,无论你是否启用七牛云,请把轮播图,栏目大图,定制标签内的部分图片重新上传可直接保存图 片,重新上传一下,否则不会图片可能会不显示(因为那些图片在我们的七牛云内) 授权码生成:https://www.pbootcms.com/freesn/ 默认采用sqlite数据库,不需要做导入和配置操作 为了网站各个页面正常运行,请不要修改URL规则 统计代码、商桥代码、各种客服代码,均可放置在后台统计位置,全站生效。 浏览器标签logo在根目录favicon.ico,ico格式百度一下,可以生成 后台地址:您的域名/admin.php 账号:admin密码:123456789
甲壳虫adb助手安全下载.apk
内容概要:本文档《1_蓝桥杯省赛考点整合.pdf》详细介绍了蓝桥杯省赛中常见的硬件模块及其编程实现方法。主要包括Led模块、Key模块、Seg模块、ds1302、ds18b20、PCF8591、EEPROM、超声波模块、串口通信、NE555定时器以及蜂鸣器继电器的底层代码和具体应用实例。每个模块都涵盖了代码示例、功能解释及具体的省赛题目应用场景。例如Led模块展示了如何根据模式显示Led、Led闪烁和PWM亮度调整;Key模块讲解了模式切换、参数设置和按键长按短按等功能;Seg模块则侧重于正常数据显示和闪烁效果。
内容概要:本文详细介绍了基于Matlab的图像拼接GUI系统的实现过程,涵盖了五个主要模块:系统管理、角点提取(Harris角点)、特征匹配(SIFT匹配)、匹配优化(RANSAC)和图像拼接(单映变换)。系统管理模块负责初始化环境和参数设置;角点提取模块使用Harris角点算法识别图像的关键点;特征匹配模块通过SIFT算法寻找匹配点对;匹配优化模块采用RANSAC算法去除误匹配点;最终图像拼接模块利用单映变换完成图像融合。文中还提供了大量代码示例和参数调优技巧,如高斯滤波的sigma值选择、SIFT匹配阈值设定、RANSAC迭代次数和像素容差调整等。 适合人群:对图像处理感兴趣的初学者和有一定编程基础的研究人员。 使用场景及目标:适用于学习和研究图像拼接技术,尤其是希望通过Matlab实现图像处理算法的人群。目标是掌握图像拼接的基本原理和技术实现,能够独立构建类似的图像处理系统。 其他说明:文中提供的代码仅供学习参考,实际应用中建议进一步优化和改进。同时,文中提及了一些实用技巧,如内存管理和性能优化,有助于提高系统的稳定性和效率。
内容概要:本文详细介绍了基于西门子S7-200 Smart PLC的30吨双级反渗透水处理系统的设计与实现。主要内容涵盖了一键制水、加药控制、触摸屏组态、程序结构优化等方面的技术细节。文中不仅展示了具体的PLC梯形图代码片段,还分享了许多现场调试的经验和技巧,如定时器防抖、中断优先处理、PID闭环控制的应用等。此外,文章还提到了一些实用的功能设计,如无人值守模式的安全机制、长按按钮触发高级设置等。 适合人群:从事水处理自动化系统设计、维护的工程师和技术人员,尤其是熟悉西门子PLC编程的从业者。 使用场景及目标:适用于需要稳定产水的工业应用场景,帮助工程师理解和掌握双级反渗透系统的控制逻辑,提高系统的可靠性和效率。同时,也为新手提供了宝贵的调试经验和注意事项。 其他说明:文章强调了程序结构的模块化设计,便于后期维护和参数调整。建议读者结合提供的工程文件进行仿真练习,以便更好地理解系统的工作原理。
内容概要:本文详细介绍了基于LabVIEW 2018版开发的多路温度采集系统,涵盖了系统架构设计、Modbus通讯实现、FGV(功能性全局变量)应用、队列管理和引用控制等多个高级知识点。系统采用了一主两从的串口连接方式,其中一个从机负责温度采集,另一个从机负责开关控制。文中提供了具体的代码示例,如串口配置、Modbus主站配置、数据读取、FGV创建与使用、队列操作等,展示了如何通过这些技术实现高效的数据传输和处理。 适用人群:适用于有一定LabVIEW基础的研发人员和技术爱好者,尤其是希望深入理解LabVIEW高级特性和Modbus通讯机制的人群。 使用场景及目标:①掌握LabVIEW中Modbus通讯的具体实现方法;②学会使用FGV实现跨VI的数据共享;③理解队列在多线程数据处理中的应用;④熟悉引用控制在动态界面更新中的作用。通过这些技术的应用,可以提高项目的开发效率和系统的稳定性。 其他说明:本文不仅提供了详细的代码示例,还分享了许多实践经验,如如何避免内存泄漏、如何处理异常情况等。此外,作者还强调了系统架构的设计思路,如分层设计、生产者-消费者模式等,这些都是实际项目开发中非常重要的考虑因素。
RAG-N算法,滤波器加法器优化代码
《软考软件设计师高频考点精析》精准提炼考试核心内容,涵盖编程语言、数据结构、操作系统、数据库、软件工程等必考领域。结合历年真题与实战技巧,助你快速掌握重点,高效备考。一册在手,轻松攻克软考难关!
内容概要:本文详细介绍了如何利用LabVIEW和周立功库文件构建一个能够进行基本CAN通讯的上位机系统。主要内容涵盖前期准备工作,包括安装LabVIEW软件和下载相关库文件;创建LabVIEW项目,调用库文件实现CAN设备初始化、数据发送与接收等功能的具体步骤;以及一些常见的注意事项和避坑指南。此外,还提供了进阶玩法,如封装成子VI、优化接收处理逻辑等。 适合人群:适用于初次接触LabVIEW和CAN通讯的技术爱好者,尤其是希望快速掌握CAN通讯上位机开发的初学者。 使用场景及目标:本教程旨在帮助用户建立一个简易的CAN通讯平台,以便于后续深入研究或实际项目开发。通过动手实践,读者将学会如何配置CAN设备、编写数据传输代码,并理解CAN通讯的基本原理。 其他说明:文中附带了详细的代码示例和实用技巧,有助于提高学习效率。同时强调了正确配置结构体成员顺序、管理设备句柄、匹配波特率等关键点,以确保系统的稳定性。