用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?

lingxia 2015-01-15 22:11:56 6483

如图所示,本来是一个普通的png图片,上传到OSS后,下载下来发现没法打开(被告示文件格式错误或损坏),用记事本打开来后发现png文件开头和结尾多了一串东西!
开头:
--KlX5FEQvcWEgCzcL_vqgu4oRwn-5PO5PuLLF
Content-Disposition: form-data; name="birdy.png"; filename="birdy.png"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
结尾:
--KlX5FEQvcWEgCzcL_vqgu4oRwn-5PO5PuLLF--
请问这些是什么?为什么上传的时候会被加入进去?

对象存储
分享到
取消 提交回答
全部回答(4)
  • nightleslie
    2015-01-16 14:41:05
    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    楼主,JavaSdk只会生成URL,图片是你自己调用HTTP接口上传上去的吧?
    你是怎么调用HTTP接口上传的,code贴出来看看,怎么觉得这跟JavaSdk生成的URL关系不大,URL只是指定了ResourcePath,host,签名这些。

    -------------------------

    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    刚看到,回头帮你看看啊

    -------------------------

    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    估计还是使用MulitypartEntity不正确带来的问题,你试过使用FileEntity吗?
    //MultipartEntity reqEntity = new MultipartEntity();
    //reqEntity.addPart("birdy.png" , bin);
    HttpEntity reqEntity = new FileEntity(file, "png");
    我使用FileEntity就是没问题的,我再看下为啥MultipartEntity有问题.....
    0 0
  • 非的斯蒂芬
    2015-01-16 10:50:39
    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    我的 java SDK  里面的java文件   中文  乱码了 ,里面的编码 是什么 ?  utf-8   和 GBK 都试过 了 ,都不行。
    0 0
  • 千鸟
    2015-01-16 09:35:25
    我现在主要用.net的oss了,没用java了,以前用java没问题,帮顶。
    0 0
  • lingxia
    2015-01-15 22:18:40
    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    发现今天更新了java sdk 2.0.1,用了最新版的,问题依旧,我记得以前版本没有这个问题的呀,今天回来就出现这个问题。。。

    -------------------------

    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    怎么这么多广告帖,自己顶上去。。。

    -------------------------

    Re回5楼nightleslie的帖子
    //初始化OSSClient
            OSSClient client = new OSSClient(accessKeyId, accessKeySecret);
            //GeneratePresignedUrl
            GeneratePresignedUrlRequest gpur = new GeneratePresignedUrlRequest(bucketName, "birdy.png", HttpMethod.PUT);
            gpur.setExpiration(new Date(new Date().getTime() + 1000*60));
            gpur.setContentType("png");
            URL url = client.generatePresignedUrl(gpur);
            String urlRst = url.toString();
            //模仿上传过程
            HttpClient httpclient = new DefaultHttpClient();
            HttpPut httpPut = new HttpPut(urlRst);
            File file = new File("D:\\temp\\birdy.png");
            FileBody bin = new FileBody(file);
            MultipartEntity reqEntity = new MultipartEntity();
            reqEntity.addPart("birdy.png" , bin);
            httpPut.setEntity(reqEntity);
            httpPut.addHeader("Content-Type", "png");
            HttpResponse rsps = httpclient.execute(httpPut);  
            int statusCode = rsps.getStatusLine().getStatusCode();
            if (statusCode == HttpStatus.SC_OK) {  
        HttpEntity resEntity = rsps.getEntity();
        String rst = EntityUtils.toString(resEntity);
        System.out.println(rst);
        response.getWriter().write(rst);
        response.getWriter().close();
        EntityUtils.consume(resEntity);
        System.out.println("Upload Success!!");
            }else{
        HttpEntity resEntity = rsps.getEntity();
        String rst = EntityUtils.toString(resEntity);
        System.out.println(rst);
        response.getWriter().write(rst);
        response.getWriter().close();
        EntityUtils.consume(resEntity);
            }
    用的是HTTPClient,我记得上个月这个帖子 http://bbs.aliyun.com/read/187516.html?spm=0.0.0.0.dX43Jk就是你回复我的哈,这次又麻烦你了!

    -------------------------

    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    求助

    -------------------------

    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    求救,要死人了

    -------------------------

    Re用javaSDK的url方式上传图片后,图片多了一串header,没法去掉吗?
    救命

    -------------------------

    回11楼nightleslie的帖子
    用FileEntity确实瞬间搞定了。。。。。。。。。。。!
    0 0
添加回答
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题