weixin_65228302 2023-11-30 17:00 采纳率: 28.6%
浏览 3

上传中文文件名乱码。

package com.Code;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.File;
import com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;

public class UploadServlet extends HttpServlet {

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    SmartUpload su = new SmartUpload();
    ServletConfig sc = this.getServletConfig();
    su.initialize(sc, req, resp);
    req.setCharacterEncoding("utf-8");
    resp.setCharacterEncoding("UTF-8");
    resp.setContentType("text/html;charset=UTF-8");
    

    try {
        
        su.upload();
        
        File file = su.getFiles().getFile(0);
        String filename=file.getFileName();
        
        String newfilename=new String(filename.getBytes("GBK"),"UTF-8");
 //注意:文件路径需要根据实际环境修改

        file.saveAs("D:\\实验数据\\javawebtest\\"+ newfilename, su.SAVE_PHYSICAL );
        resp.getWriter().print("上传成功");
    } catch (SmartUploadException e) {
        e.printStackTrace();
    }


}

}

,代码有什么问题吗,为什么上传后中文文件乱码

img

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-30 19:47
    关注

    【以下回答由 GPT 生成】

    ### 回答
    我可以帮你解决这个问题。在Java的Servlet中,处理中文文件名乱码问题需要对请求进行编码处理。
    
    你需要在处理文件上传的Servlet中,对文件名进行重新编码,可以使用如下代码:
    ```java
    request.setCharacterEncoding("UTF-8"); // 设置请求的编码方式为UTF-8
    
    String fileName = new String(fileItem.getName().getBytes("ISO-8859-1"), "UTF-8"); // 将文件名转换为UTF-8编码
    

    这样就可以解决中文文件名乱码的问题了。 ```



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月30日

悬赏问题

  • ¥15 结构功能耦合指标计算
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥15 校内二手商品转让网站