关于getFile()文件上传

使用okhttp上传文件

MediaType mediaType = MediaType.parse("multipart/form-data; charset=utf-8");

OkHttpClient okHttpClient = new OkHttpClient();

File file = new File("f://Doc/啦.txt");

Request request = new Request.Builder()

        .url("http://localhost:11024/fserver/file?path=/")

        .post(RequestBody.create(mediaType, file))

        .build();

okHttpClient.newCall(request).enqueue(new Callback() {

    @Override

    public void onFailure(Call call, IOException e) {

        e.getMessage();

    }

                        ~~~~~~

      后台执行到 getFile()方法就报错

                Caused by: java.io.IOException: Separation boundary was not specified

评论区

CliveNo.1

2019-06-26 16:50

@Jfinal 大佬求助

JFinal

2019-06-26 17:27

@CliveNo.1 有不少人碰到过这个问题,解决的时候,无一例外,全都是客户端的事,与 jfinal 这端完全无关

jfinal 这端只有 getFile() 这个 API,只需要注意,如果同时要传参的话,先调用 getFile() 后调用 getPara()

MR.zhangzhiwei

2019-06-27 15:59

@CliveNo.1 我给你一个上传图片的后台代码吧,拿去不谢

MR.zhangzhiwei

2019-06-27 16:01

@CliveNo.1 /**
* #文件上传大小限制 10 * 1024 * 1024 = 10M
*/
public static final String config_maxPostSize = "10485760";
/**
* 文件上传根路径
*/
public static final String config_fileUploadRoot = "/img/";

// 上传图片的demo
public void upload() {

StringBuilder savePathStr = new StringBuilder(PathKit.getWebRootPath() + config_fileUploadRoot);
File savePath = new File(savePathStr.toString());
if (!savePath.exists()) {
savePath.mkdirs();
}
String fileRoot = "";
// 保存文件
try {
List files = getFiles(savePath.getPath(), Integer.parseInt(config_maxPostSize), "UTF-8");

fileRoot = config_fileUploadRoot + files.get(0).getFileName();
} catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}

renderJson(fileRoot);
}

MR.zhangzhiwei

2019-06-27 16:02

@CliveNo.1 前台你随便写个页面,form提交file文件,肯定可以上传的

CliveNo.1

2019-06-27 16:27

@MR.zhangzhiwei 非常感谢,解决了,我是调用的接口,用流方式传输,我没有认真看okhttp

MR.zhangzhiwei

2019-06-27 16:32

@CliveNo.1 我给你的代码不是流上传下载啊

CliveNo.1

2019-06-27 17:02

@MR.zhangzhiwei 恩恩 我在网上查了okhttp,不过谢谢了

热门反馈

扫码入社