精华内容
下载资源
问答
  • 相信大家肯定遇到过文件上传文件名乱码的问题,但我的这个情况是,有时中文乱码,有时又不乱,大概各占50%左右,按道理说应该是要么乱要么不乱啊,我用ajaxsubmit方法提交,后台mvc自带multipartfile接收,请问问题...
  • 场景描述: ...此处的处理没有生成文件后,将文件上传,而是直接生成好xml格式字符串后, 转换为流上传。 // 设置编码 ftpClient.setControlEncoding("UTF-8"); ftpClient.enterLocalPassiveMode();

    场景描述:

    1. 在系统中生成xml上传到指定目录中
    2. 定时监控指定目录,读取目录中文件,解析,执行业务操作后,将文件移动到指定目录。

    废话没有,直接上代码。

    1.上传

    此处的处理没有生成文件后,将文件再上传,而是直接生成好xml格式字符串后, 转换为流上传。

                // 设置编码
                ftpClient.setControlEncoding("UTF-8");
                ftpClient.enterLocalPassiveMode();
                // 创建目录, 如果目录已存在, 则返回false, 如果目录不存在就创建并返回true
                boolean makeDirectory = ftpClient.makeDirectory(formatPathName(pathName));            
                for (Entry<String, InputStream> entry : map.entrySet()) {
                    String fn = entry.getKey();
                    InputStream fin = entry.getValue();
                    // 执行上传
                    result = ftpClient.storeFile(formatPathName(fn), fin);
                    if (!result) {
                        log.error(String.format("----FTP文件[%s]上传失败----", fn));
                        return false;
                    }
                }

    上传时遇到的问题:

    • 一开始ftpClient.setControlEncoding("UTF-8"); 编码设置的是GBK,上传也正常。用记事本打开xml文件中文也没有乱码,但是当用浏览器打开文件是就是乱码,无法预览,搞的很郁闷。因为没有乱码, 也没想到是这个地方编码的问题。然后各种搜,也没有找到跟我类似的问题, 但是看到有的例子里面用的是UTF-8, 我也就试着改了一下。然后,就可以了。

     

     

    2.获取目录下所有文件夹名称

            ftpClient.setControlEncoding("UTF-8");
            ftpClient.enterLocalPassiveMode();
            FTPFile[] ftpFiles = ftpClient.listFiles();
            List<String> retList = new ArrayList<String>();
            if (ftpFiles == null || ftpFiles.length == 0) {
                return retList;
            }
            for (FTPFile ftpFile : ftpFiles) {
                // 判断是否时目录
                if (ftpFile.isDirectory()) {
                    retList.add(new String(ftpFile.getName().getBytes("UTF-8")));
                }
            }
            return retList;

    此处问题同样是乱码问题,如代码中设置即可解决。

    3.获取文件内容

            ftpClient.setControlEncoding("UTF-8");
            ftpClient.enterLocalPassiveMode();
            FTPFile[] ftpFiles = ftpClient.listFiles(formatPathName(fileName));
            List<String> retList = new ArrayList<String>();
            if (ftpFiles == null || ftpFiles.length == 0) {
                return retList;
            }
    
            System.out.println("------------------ " + fileName + " 读取文件  开始 --------------------------");
            InputStream retrieveFileStream = ftpClient.retrieveFileStream(formatPathName(fileName));
            BufferedReader br = new BufferedReader(new InputStreamReader(retrieveFileStream, "GB2312"));// 构造一个BufferedReader类来读取文件
            String s = null;
            while ((s = br.readLine()) != null) {// 使用readLine方法,一次读一行
                retList.add(s);
            }
            br.close();
            retrieveFileStream.close();
            ftpClient.completePendingCommand();
            System.out.println("------------------ " + fileName + " 读取文件  结束 --------------------------");
            return retList;

    此处遇到问题:

    • 1.获取文件内容是, 是乱码。经过多次尝试, new InputStreamReader(retrieveFileStream, "GB2312")要使用GB2312.
    • 2.循环获取文件按内容是, 第一个文件读取完成后就停止了, 并没有继续往下执行。查了一下是被阻塞,需添加 ftpClient.completePendingCommand();

    4.移动文件, 删除文件、删除目录等操作失败, 多数也是因为中文名称乱码导致。此处不再多说。

    名称处理的方法:

     private String formatPathName(String str) throws UnsupportedEncodingException {
            // return new String(str.getBytes("GBK"), "iso-8859-1");
            return new String(str.getBytes("UTF-8"), "iso-8859-1");
        }

     

    展开全文
  • PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。下面是php上传文件文件名乱码怎么办,让我们一起来看看php...php上传文件文件名乱码怎么办php上传文件文件名乱码的解决方法:首先在脚本头部添加【head...

    【摘要】

    PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。下面是php上传文件时文件名乱码怎么办,让我们一起来看看php上传文件时文件名乱码怎么办的具体内容吧!

    php上传文件时文件名乱码怎么办

    php上传文件时文件名乱码的解决方法:首先在脚本头部添加【header("Content-type: text/html; charset=utf-8");】;然后利用iconv()函数转换字符编码即可。

    首先,在php文件的头部加这么一段代码:

    (推荐教程:php图文教程)header("Content-type: text/html; charset=utf-8");

    然后定义一个变量:$name = iconv('utf-8','gb2312',"upload/".$file["name"]);

    (视频教程推荐:php视频教程)

    php代码:header("Content-type: text/html; charset=utf-8");

    $file = $_FILES["file"];

    if($file["error"]>0){

    echo "错误:".$file["error"];

    }else{

    $name = iconv('utf-8','gb2312',"upload/".$file["name"]);

    echo "文件名称:".$file["name"]."";

    echo "文件类型:".$file["type"]."";

    echo "文件大小:".($file["size"]/1024)."K";

    echo "文件临时存储的位置:".$file["tmp_name"]."";

    //保存上传的文件

    if(file_exists("upload".$file["name"])){

    echo $file["name"]."文件已经存在";

    }else{

    %E6%91%84%E5%9B%BE%E7%BD%91_500383348.jpg%20 //如果目录不存在则将该文件上传

    if(move_uploaded_file($file['tmp_name'],$name)){

    // move_uploaded_file($file['tmp_name'],"upload/".$file["name"]);

    echo '文件上传成功!';

    echo '图片信息:';

    print_r($file);

    }

    }

    以上就是php上传文件时文件名乱码怎么办的内容,对PHP感兴趣的小伙伴们可以关注考必过,获取更多PHP前沿资讯和最新技术。最新消息小编会第一时间发布,助力大家考试,加油!

    展开全文
  • 今天项目中遇到通过web上传文件文件系统时,中文文件名乱码,一步步排查了http通讯过程中的编解码(通过utf-8)都没有发现问题。操作系统的默认字符集也是utf-8。 通过日志打印System.getProperty(“file.encoding”...

    今天项目中遇到通过web上传文件到文件系统时,中文文件名乱码,一步步排查了http通讯过程中的编解码(通过utf-8)都没有发现问题。操作系统的默认字符集也是utf-8。 通过日志打印System.getProperty(“file.encoding”)也是utf-8码。。。。一时凌乱了!! 最后通过查资料,发现通过Java写文件时文件名编码和System.getProperty(“sun.jnu.encoding”)有关,打印此环境属性发现输出竟然是ANSI的一种编码,终于找到问题爆发点,通过在程序中设置System.setProperty(“sun.jnu.encoding”,”utf-8”)解决问题。

    通过问题解决得出结论:sun.jnu.encoding 影响文件名的创建,而 file.encoding 则影响到文件内容。

    所以说,在我们使用 Java 处理中文文件的时候,如果发现文件的中文内容没有乱码,而文件的中文名发生乱码,我们就应当多考虑一下 sun.jnu.encoding 和 file.encoding 的区别了。

    展开全文
  • 此解决办法仅针对本人,可参考;

    此解决办法仅针对本人,可参考;

     

     

     

    展开全文
  • 详细内容问题引出:上传中文命名的图片,下载显示不了中文名称。如图:(相关视频教程推荐:java视频教程)解决方法:1、sping-mvc.xml部分...2、FileController.java中文文件名获取代码:获取浏览器格式,根据不同浏览...
  • response.setHeader(...)下载中文文件名乱码问题 关于中文文件下载的问题,网上的咨询和答疑已经很多,我原来处理下载的代码如下: Java代码  response.setHeader("Content-Disposition", ...
  • 来进行转码(后台用java写的),开始我测试上传了几个中文名称的文件,很正常,但是客户那边用了后,反应文件上传了找不到,KB的开始调试了,把客户的文件拿过来做测试,妈了个咪了的居然出现乱码了,于是各种搜索,...
  • java httpclient文件上传,springmvc作为服务器端接收文件,以及上传中文件名乱码的解决方法
  • LINUX文件:2013-04419-xq(????????????-???...JAVA代码: //文件输出流 FileOutputStream fos = new FileOutputStream(targetPath+"/"+new String(filesFileName[0].getBytes(),"UTF-8"));...//上传
  • linux下 java 创建中文文件名乱码问题

    万次阅读 2017-02-23 10:15:40
    原文地址:http://blog.csdn.net/youling_lh/article/details/9475519今天项目中遇到通过web上传文件文件系统时,中文文件名乱码,一步步排查了http通讯过程中的编解码(通过utf-8)都没有发现问题。操作系统的默认...
  • 在测试的时候用其他浏览器下载的时候出现了文件名乱码问题。然后从网上找了找,整理了一下,大致分为两种情况吧。还有其他情况希望大家指出。 IE11浏览器出现乱码,然后修改如下: response.setHeader("Content-...
  • //解决http报头乱码,即中文文件名乱码 try { List list = servletFileUpload.parseRequest(request); for (Iterator iter = list.iterator(); iter.hasNext();) { FileItem item = iter.next(); if (item....
  • 环境说明: ...Java中: org.apache.commons.net.ftp.FTPClient; 依赖  &lt;dependency&gt;  &lt;groupId&gt;commons-net&lt;/groupId&gt;  &lt;artifactId&gt;commons...
  • 最近项目里需要开发一个excel文件上传的功能,项目最终部署在centos上使用tomcat容器。文件上传地址是一个挂载在centos上的windows共享目录。开发完成后遇到一个问题,项目部署在windows时上传文件没有问题,当部署...
  • 项目中用到文件上传。form提交,如果enctype="multipart/form-data",会发现文件名或者普通表单字段乱码 大家一般解决文件名称乱码比较容易,如以下设置 FileItemFactory factory = new DiskFileItemFactory(); ...
  • 在项目中又一个上传文件的oss服务,直接调用服务的上传文件成功,如果经过网关zuul服务,上传中文名字的文件文件名会出现乱码,最终导致上传失败,如果上传英文名字的文件,没有任何问题。怀疑网关zuul对中文做...
  • 在FCKeditor的程序中找到ConnectorServlet.java 打开该文件找到该程序中 DiskFileUpload upload = new DiskFileUpload(),然后在该行下面添加 upload.setHeaderEncoding("UTF-8") 如果使用的是Tomcat,...
  • 问题现象:只是中文文件名乱码成?? 形式。文件里面的中文内容没有乱码 问题补充: 1.虽然上传上去的中文文件名是乱码, 但是可以通过Java程序根据文件名又下载下来,文件名存放到数据库是好的。 2...
  • (2)如果经过网关zuul服务上传中文名字的文件文件名会出现乱码,最终导致上传失败 (3)如果上传英文名字的文件,没有任何问题 2.解决方案 (1)首先列出zuul服务的配置application.properties:代码示例如下 ...
  • java】[文件上传jar包]commons-fileUpload组件解决文件上传(文件名)乱码问题 response.setContentType("text/html; charset=UTF-8"); Boolean isMultipart = Servl...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 189
精华内容 75
关键字:

java文件上传文件名乱码

java 订阅