• struts2 File标签上传文件


    1、action.class

    private File pictureType;
        private String pictureTypeContentType;
        private String pictureTypeFileName;
    
    public String editType() throws IOException{
            Type t=typeService.find(Type.class, id);
            System.out.println("id="+id);
            System.out.println(UploadPath);
            System.out.println(pictureTypeFileName);
    
            File saved=new File(UploadPath+Constants.TypeDir, t.getId()+"."+pictureTypeContentType.split("/")[1]);
    
            InputStream ins=null;
            OutputStream ous=null;
            try {
                saved.getParentFile().mkdirs();
                ins=new FileInputStream(pictureType);
                ous=new FileOutputStream(saved);
                byte[] b=new byte[1024];
                int len=0;
                while((len=ins.read(b))!=-1){
                    ous.write(b, 0, len);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                if(ous!=null){
                    ous.close();
                }
                if(ins!=null){
                    ins.close();
                }
                t.setPicUrl(Constants.TypeDir+"/"+t.getId()+"."
                        + pictureTypeContentType.split("/")[1]);
                typeService.save(t);
            }
            return SUCCESS;
        }

    2、表单

    <s:form action="editType_manage" enctype="multipart/form-data">
            <s:file label="修改商店图片" name="pictureType"></s:file>
            <s:submit value="确认修改" />
        </s:form>

    3、action得不到文件的几个原因

    (1)三个变量,没有get-set方法

    (2)Form没有设置enctype="multipart/form-data"

  • 相关阅读:
    1009 Product of Polynomials (25分)
    VS code 调试C++
    1065 A+B and C (64bit) (20分)
    UML与数据库应用系统
    语句(switch,异常,NDEBUG,assert)
    1046 Shortest Distance (20分)
    1042 Shuffling Machine (20分)
    模块和包
    闭包&装饰器
    迭代器、生成器
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3865656.html
Copyright © 2020-2023  润新知