问答详情
源自:4-3 post上传文件

服务器跟客户端都报错

服务器:

    public String uploadInfo() throws IOException{
        
        System.out.println(username + "," +password);
        
        if(mPhoto == null){
            System.out.println(mPhotoFileName + "is null .");
        }

        String dir = ServletActionContext.getServletContext().getRealPath("files");
        
        File file = new File(dir,mPhotoFileName);
        
        FileUtils.copyFile(mPhoto,file);//上传文件
        
        return null;
    }


ERROR org.apache.struts2.dispatcher.Dispatcher - Could not find action or result
/imooc_okhttp/uploadInfo

https://img1.mukewang.com/5b8411100001290a15940826.jpg


客户端:

    public void doUpload(View view) throws IOException {
    
        File file = new File(Environment.getExternalStorageDirectory(),"temp.jpg");
        if (!file.exists()){
            L.e(file.getAbsolutePath()+"not exist!");
            return;
        }
         RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("username","hyman")
                .addFormDataPart("password","1234")
                .addFormDataPart("mPhoto","temp.jpg",RequestBody.create(MediaType.parse("application/octet-stream"),file))
                .build();
        Request request = new Request.Builder()
                .url(BaseUrl+"uploadInfo")
                .post(requestBody)
                .build();
                
        executeRequest(request);
    }

点击按钮之后是html的文档

https://img2.mukewang.com/5b84114400018ef216010776.jpg

提问者:赵孙李 2018-08-27 22:58

个回答

  • 赵孙李
    2018-08-27 23:04:50

    原因是上传的图片太大,看了同学们的评论,原来需要在在structs.xml中加一句:

    <constant name="struts.multipart.maxSize" value="9000000"/>

    9000000是文件大小的限制