当前位置: 首页 > 知识库问答 >
问题:

如何使用java将图像上传到wordpress媒体API

苏涛
2023-03-14

如何使用java将图像上传到wordpress API?restapi的路径是wp-json/wp/v2/media

共有1个答案

罗诚
2023-03-14

您可以上传图像文件(某些文件类型-默认情况下启用常见的图像格式(完整的WP接受的上传格式列表:https://wordpress.com/support/accepted-filetypes/)

我用来实现这一点的代码如下:

import org.apache.http.HttpEntity;
import org.apache.http.HttpHeaders;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

        CloseableHttpClient httpClient = HttpClients.createDefault();
        String encoded_cred = Base64.getEncoder().encodeToString(("username:pw").getBytes());
        String extension = "";
        String mime = "";
        String fileName = F.getName();
        int i = fileName.lastIndexOf('.');
        if (i > 0) {
            extension = fileName.substring(i + 1);
        }
        if (extension.equalsIgnoreCase("png")) {
            mime = "image/png";
        }
        if (extension.equalsIgnoreCase("jpeg")) {
            mime = "image/jpeg";
        }
    
        //endpoint and entity
        String uri = "https://www.<domain>.com/wp-json/wp/v2/media";
        HttpEntity entity = MultipartEntityBuilder.create()
                .addBinaryBody("file", new FileInputStream(F), ContentType.create(mime), fileName)
                .build();


        //request and execution
        HttpPost media = new HttpPost(uri);
        media.setEntity(entity);
        media.setHeader(HttpHeaders.AUTHORIZATION, "Basic " + encoded_cred);
        CloseableHttpResponse response = httpClient.execute(media);
        String resp = EntityUtils.toString(response.getEntity());

我的pomfile使用了这些,尽管版本不一定相同:

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.5.13</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.9</version>
    </dependency>
</dependencies>
 类似资料:
  • 问题内容: 我正在上传base64字符串,但GraphQL挂起了。如果我将字符串切成少于50,000个字符,它将起作用。50,000个字符后,graphQL永远不会进入解析函数,但不会给出错误。在较小的字符串上,它可以正常工作。 问题答案: 此处的正确方法是使用AWS AppSync通过复杂类型执行实际的S3上传- 您在此处说明的内容看起来更像是您尝试将base64编码的图像作为字符串保存到字段中

  • 我正在构建一个自定义的wordpress主题,并想为我的客户提供通过WP中的媒体管理器上传背景图像的能力。 然而,我无法确定如何使用CSS访问图像。我认为将url设置为wp内容中的UPLOADS文件夹很简单。 但是,媒体管理器不会将所有图像转储到一个目录中,而是按月份和年份组织它们。 如何确定媒体库中特定图像的路径?

  • 我已经创建了一个带有插件的自定义模板,允许用户(角色:Customer)从前端上传图片,但当我尝试上传图片时,它会显示“您无权将文件附加到此帖子。” 我可以通过 /wp-admin上传图片 这是我的密码; JS: 我已经设置授予上传,编辑后使用用户角色编辑器插件的角色权限。 谢谢!

  • 问题内容: 我目前正在使用 http://paperjs.org 创建HTML5画布绘图应用程序。我想让用户将图像上传到画布中。我知道我需要进行登录和注册,但是有更简单的方法吗?我已经看到HTML5拖放式上传。 问题答案: 我假设您的意思是将图像加载到画布中,而不是从画布上载图像。 在这里阅读他们所有的画布文章可能是一个好主意 但基本上,您要做的是在javascript中创建图片,然后将image

  • API 当请求命中API时,文件计数为0。我花了整整两天的时间来找出哪里出了问题,但也无法找出问题。我不认为代码有问题,因为对其他一些人来说,它是工作的。我从不同的代码,所以接受答案。谁能帮我弄清楚出了什么问题吗?

  • 问题内容: 我有一个图像,我想使用Volley库将该图像上传到我的Web服务,问题是我正在寻找一种方法,但仍然没有找到。 我找到了,但是对我不起作用:http : //develop-for- android.blogspot.com.br/2014/01/using-volley-in-your- application.html 我怎样才能做到这一点 ? 我正在尝试这个。 问题答案: 我对排球